在开发中遇到一个非常诡异的问题:我用vector存储了一组数据,然后调用sort方法,利用自定义的排序函数进行排序,但是一直都会段错误,在排序函数中打印参加排序的值,发现有空值,而且每次都跟同一个数据排序,非常诡异。数据本身没有问题,换一组数据,甚至是在不能排序的那组数据中增删一些数据,sort又正常了。。。

我把出现这种现象的数据贴出来,大神们感兴趣可以分析一下,究竟是为什么:

2016-05-10 00:28:00.0|2016-05-10 01:00:00.0|02000006000000071605091559004526|NAME|02000000000000050000000000000055|NAME
2016-05-10 00:27:00.0|2016-05-10 00:54:00.0|02000000000000071605071617500023|NAME|02000000000000050000000000000110|NAME
2016-05-10 00:27:00.0|2016-05-10 00:30:00.0|02000000000000071605091739500000|NAME|02000000000000050000000000000057|NAME
2016-05-10 00:28:00.0|2016-05-10 00:42:00.0|02000000000000071605091719500002|NAME|02000000000000050000000000000095|NAME
2016-05-10 00:27:00.0|2016-05-10 01:09:00.0|02000000000000071605070313500002|NAME|02000000000000050000000000000097|NAME
2016-05-10 00:29:00.0|2016-05-10 01:13:00.0|02000006000000071605091559003907|NAME|02000000000000050000000000000069|NAME
2016-05-10 00:26:00.0|2016-05-10 00:51:00.0|02000000000000071605070233500008|NAME|02000000000000050000000000000085|NAME
2016-05-10 00:25:00.0|2016-05-10 01:50:00.0|02000000000000071605071615500023|NAME|02000000000000050000000000000103|NAME
2016-05-10 00:24:00.0|2016-05-10 01:17:00.0|02000000000000071605070150500005|NAME|02000000000000050000000000000087|NAME
2016-05-10 00:28:00.0|2016-05-10 01:00:00.0|02000000000000071605081217500028|NAME|02000000000000050000000000000152|NAME
2016-05-10 00:25:00.0|2016-05-10 01:19:00.0|02000006000000071605091600000048|NAME|02000004000000052015081800000002|NAME
2016-05-10 00:28:00.0|2016-05-10 01:00:00.0|02000006000000071605091137006302|NAME|02000004000000052014070200000009|NAME
2016-05-10 00:24:00.0|2016-05-10 01:13:00.0|02000006000000071605091559009874|NAME|02000004000000052015051500000004|NAME
2016-05-10 00:29:00.0|2016-05-10 01:13:00.0|02000006000000071605091559003493|NAME|02000004000000052016021800000003|NAME
2016-05-10 00:28:00.0|2016-05-10 01:00:00.0|02000006000000071605091559004316|NAME|02000006000000052015012300000005|NAME
2016-05-10 00:28:00.0|2016-05-10 00:42:00.0|02000000000000071605091717500001|NAME|02000000000000050000000000000470|NAME
2016-05-10 00:25:00.0|2016-05-10 01:19:00.0|02000006000000071605091600000169|NAME|02000001000000050000000000000008|NAME
2016-05-10 00:25:00.0|2016-05-10 00:30:00.0|02000006000000071605091559006266|NAME|02000001000000052014112600000001|NAME
2016-05-10 00:25:00.0|2016-05-10 01:19:00.0|02000006000000071605091137010811|NAME|02000004000000052014070300000001|NAME
2016-05-10 00:25:00.0|2016-05-10 01:15:00.0|02000006000000071605091600001812|NAME|02000001000000050000000000000009|NAME
2016-05-10 00:26:00.0|2016-05-10 00:38:00.0|02000006000000071605091137009746|NAME|02000001000000050000000000000388|NAME
2016-05-10 00:27:00.0|2016-05-10 01:07:00.0|02000006000000071605091559009598|NAME|02000004000000052015051500000015|NAME
2016-05-10 00:29:00.0|2016-05-10 01:13:00.0|02000006000000071605091559003286|NAME|02000004000000052016021800000004|NAME
2016-05-10 00:25:00.0|2016-05-10 01:19:00.0|02000006000000071605091137010690|NAME|02000001000000050000000000000375|NAME
2016-05-10 00:29:00.0|2016-05-10 00:36:00.0|02000006000000071605091137012374|NAME|02000001000000050000000000000384|NAME
2016-05-10 00:27:00.0|2016-05-10 00:30:00.0|02000000000000071605091719500015|NAME|02000000000000050000000000000473|NAME
2016-05-10 00:29:00.0|2016-05-10 01:13:00.0|02000006000000071605091559003700|NAME|02000004000000052016022200000002|NAME

排序的结果应该如下,但是sort不出来:

2016-05-10 00:24:00.0, 2016-05-10 01:13:00.0, 02000006000000071605091559009874, 02000004000000052015051500000004
2016-05-10 00:24:00.0, 2016-05-10 01:17:00.0, 02000000000000071605070150500005, 02000000000000050000000000000087
2016-05-10 00:25:00.0, 2016-05-10 00:30:00.0, 02000006000000071605091559006266, 02000001000000052014112600000001
2016-05-10 00:25:00.0, 2016-05-10 01:15:00.0, 02000006000000071605091600001812, 02000001000000050000000000000009
2016-05-10 00:25:00.0, 2016-05-10 01:19:00.0, 02000006000000071605091600000048, 02000004000000052015081800000002
2016-05-10 00:25:00.0, 2016-05-10 01:19:00.0, 02000006000000071605091600000169, 02000001000000050000000000000008
2016-05-10 00:25:00.0, 2016-05-10 01:19:00.0, 02000006000000071605091137010811, 02000004000000052014070300000001
2016-05-10 00:25:00.0, 2016-05-10 01:19:00.0, 02000006000000071605091137010690, 02000001000000050000000000000375
2016-05-10 00:25:00.0, 2016-05-10 01:50:00.0, 02000000000000071605071615500023, 02000000000000050000000000000103
2016-05-10 00:26:00.0, 2016-05-10 00:38:00.0, 02000006000000071605091137009746, 02000001000000050000000000000388
2016-05-10 00:26:00.0, 2016-05-10 00:51:00.0, 02000000000000071605070233500008, 02000000000000050000000000000085
2016-05-10 00:27:00.0, 2016-05-10 00:30:00.0, 02000000000000071605091739500000, 02000000000000050000000000000057
2016-05-10 00:27:00.0, 2016-05-10 00:54:00.0, 02000000000000071605071617500023, 02000000000000050000000000000110
2016-05-10 00:27:00.0, 2016-05-10 01:07:00.0, 02000006000000071605091559009598, 02000004000000052015051500000015
2016-05-10 00:27:00.0, 2016-05-10 01:09:00.0, 02000000000000071605070313500002, 02000000000000050000000000000097
2016-05-10 00:28:00.0, 2016-05-10 00:42:00.0, 02000000000000071605091719500002, 02000000000000050000000000000095
2016-05-10 00:28:00.0, 2016-05-10 00:42:00.0, 02000000000000071605091717500001, 02000000000000050000000000000470
2016-05-10 00:28:00.0, 2016-05-10 01:00:00.0, 02000006000000071605091559004526, 02000000000000050000000000000055
2016-05-10 00:28:00.0, 2016-05-10 01:00:00.0, 02000000000000071605081217500028, 02000000000000050000000000000152
2016-05-10 00:28:00.0, 2016-05-10 01:00:00.0, 02000006000000071605091137006302, 02000004000000052014070200000009
2016-05-10 00:28:00.0, 2016-05-10 01:00:00.0, 02000006000000071605091559004316, 02000006000000052015012300000005
2016-05-10 00:29:00.0, 2016-05-10 00:36:00.0, 02000006000000071605091137012374, 02000001000000050000000000000384
2016-05-10 00:29:00.0, 2016-05-10 01:13:00.0, 02000006000000071605091559003907, 02000000000000050000000000000069
2016-05-10 00:29:00.0, 2016-05-10 01:13:00.0, 02000006000000071605091559003493, 02000004000000052016021800000003
2016-05-10 00:29:00.0, 2016-05-10 01:13:00.0, 02000006000000071605091559003286, 02000004000000052016021800000004
2016-05-10 00:29:00.0, 2016-05-10 01:13:00.0, 02000006000000071605091559003700, 02000004000000052016022200000002

现在只好自己写了一个排序的方法来手动排序,还好每组数据的数据量不大,对效率的要求并不是很高。

发现一个c++ vector sort的bug的更多相关文章

  1. 我通过调试ConcurrentLinkedQueue发现一个IDEA的小虫子(bug), vscode复现, eclipse毫无问题

    前言: 本渣渣想分析分析Doug Lea大佬对高并发代码编写思路, 于是找到了我们今天的小主角ConcurrentLinkedQueue进行鞭打, 说实话草稿我都打好了, 就差临门一脚, 给踢折了 直 ...

  2. 踩坑,发现一个ShardingJdbc读写分离的BUG

    ShardingJdbc 怎么处理写完数据立即读的情况的呢? 写在前面 我本地使用了两个库来做写库(ds_0_master)和读库(ds_0_salve),两个库并没有配置主从. 下面我就使用库里的 ...

  3. 发现一个FreeSWITCH bug

    在研究FreeSWITCH视频会议的混屏问题时候发现一个bug. 已提交jira. 附上代码,问题很明显,不解释 =========================================== ...

  4. [转] C++的STL库,vector sort排序时间复杂度 及常见容器比较

    http://www.169it.com/article/3215620760.html http://www.cnblogs.com/sharpfeng/archive/2012/09/18/269 ...

  5. STL vector+sort排序和multiset/multimap排序比较

    由 www.169it.com 搜集整理 在C++的STL库中,要实现排序可以通过将所有元素保存到vector中,然后通过sort算法来排序,也可以通过multimap实现在插入元素的时候进行排序.在 ...

  6. 一个Dotnet数据框架的bug

    好久没写C#代码了,今天在维护公司老项目时,偶然发现一个BUG.记录一下,后面的同学就不要踩坑啦. -------------------------------------------------- ...

  7. 记录一个chrome 65渲染的bug

    前段时间发现一个chrome 65+的BUG(chrome已更新到66,BUG仍然存在),一个元素同时使用了以下样式(失去焦点和css3的Z轴平移0deg),渲染异常 /*bug style*/ fi ...

  8. 一个历时五天的 Bug

    一个程序员在没有成长成为架构师之前,几乎都要跟 Bug为伴,程序员有很多时间都是花在了查找各种 Bug上. 我印象深刻的一个Bug, 是一个服务器网络框架无锁队列的 Bug .那个 Bug 连续查找了 ...

  9. 翻了翻element-ui源码,发现一个很实用的指令clickoutside

    前言 指令(directive)在 vue 开发中是一项很实用的功能,指令可以绑定到某一元素或组件,使功能的颗粒度更精细.今天在翻 element-ui 的源码时,发现一个还挺实用的工具指令,跟大伙分 ...

随机推荐

  1. NOIP2010-普及组初赛C语言解析

    第十六届全国青少年信息学奥林匹克联赛初赛试题 一.单项选择题 (共20题,每题1.5分,共计30分.每题有且仅有一个正确选项.) 1.2E+03表示(  D  ). A.2.03          B ...

  2. Cocoapod安装使用和常见问题(转载)

      1.cocoapod的按照,cocoapod是运行在ruby环境下的,在ruby环境的 ,像cocoapod这样的开源项目时放在放在rubygems服务器上面的,但国内访问https://ruby ...

  3. 一个3D视频播放器的演示APK

    介绍: 这个APK是把视频显示分割成左右对等的两幅画面.同时无缝显示在屏幕上, 配合类似谷歌的cartdboard "纸片壳" 或市面上的魔镜等3D眼镜来播放视频画面, 根据3D眼 ...

  4. Chorme 快捷键

    掌握谷歌浏览器的快捷键,能提升一定的使用效率. Windows 和 Linux 标签页和窗口快捷键 操作 快捷键 打开新窗口 Ctrl + n 在隐身模式下打开新窗口 Ctrl + Shift + n ...

  5. Git 添加自己分支 pull request

    1.找到项目地址 这里,我们可以找到项目地址,比如:https://github.com/*****/Cplusplus_Thread_Lib,然后点击页面右上角的 "fork"  ...

  6. rsync 断点续传

    # rsync -avzP file root@172.20.7.219:/root/tmp           (我这里file指要传送的文件)

  7. Linux下区分物理CPU、逻辑CPU和CPU核数

    ㈠ 概念           ① 物理CPU                             实际Server中插槽上的CPU个数              物理cpu数量,可以数不重复的 p ...

  8. python安装pip

    pip类似RedHat里面的yum,安装Python包非常方便.本节详细介绍pip的安装.以及使用方法. 1.pip下载安装 1.1 pip下载 # wget "https://pypi.p ...

  9. util:properties与context:property-placeholder

    spring 使用注解装配的Bean如何使用property-placeholder属性配置中的值 这个问题不大不小,以前偷懒凡是碰到需要引用属性文件中的类时就改用xml来配置. 今天看了下sprin ...

  10. git中添加多个SSH公钥,以及不同系统之间的差别

    git学习已经也有一段时间了,基本的操作,口令会了一点点,但是还没有git团队开发的实践,这个有待加强~ git是在windows下面模拟Linux环境的,linux自带的ssh服务,可以通过该服务远 ...