发现一个c++ vector sort的bug
在开发中遇到一个非常诡异的问题:我用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的更多相关文章
- 我通过调试ConcurrentLinkedQueue发现一个IDEA的小虫子(bug), vscode复现, eclipse毫无问题
前言: 本渣渣想分析分析Doug Lea大佬对高并发代码编写思路, 于是找到了我们今天的小主角ConcurrentLinkedQueue进行鞭打, 说实话草稿我都打好了, 就差临门一脚, 给踢折了 直 ...
- 踩坑,发现一个ShardingJdbc读写分离的BUG
ShardingJdbc 怎么处理写完数据立即读的情况的呢? 写在前面 我本地使用了两个库来做写库(ds_0_master)和读库(ds_0_salve),两个库并没有配置主从. 下面我就使用库里的 ...
- 发现一个FreeSWITCH bug
在研究FreeSWITCH视频会议的混屏问题时候发现一个bug. 已提交jira. 附上代码,问题很明显,不解释 =========================================== ...
- [转] C++的STL库,vector sort排序时间复杂度 及常见容器比较
http://www.169it.com/article/3215620760.html http://www.cnblogs.com/sharpfeng/archive/2012/09/18/269 ...
- STL vector+sort排序和multiset/multimap排序比较
由 www.169it.com 搜集整理 在C++的STL库中,要实现排序可以通过将所有元素保存到vector中,然后通过sort算法来排序,也可以通过multimap实现在插入元素的时候进行排序.在 ...
- 一个Dotnet数据框架的bug
好久没写C#代码了,今天在维护公司老项目时,偶然发现一个BUG.记录一下,后面的同学就不要踩坑啦. -------------------------------------------------- ...
- 记录一个chrome 65渲染的bug
前段时间发现一个chrome 65+的BUG(chrome已更新到66,BUG仍然存在),一个元素同时使用了以下样式(失去焦点和css3的Z轴平移0deg),渲染异常 /*bug style*/ fi ...
- 一个历时五天的 Bug
一个程序员在没有成长成为架构师之前,几乎都要跟 Bug为伴,程序员有很多时间都是花在了查找各种 Bug上. 我印象深刻的一个Bug, 是一个服务器网络框架无锁队列的 Bug .那个 Bug 连续查找了 ...
- 翻了翻element-ui源码,发现一个很实用的指令clickoutside
前言 指令(directive)在 vue 开发中是一项很实用的功能,指令可以绑定到某一元素或组件,使功能的颗粒度更精细.今天在翻 element-ui 的源码时,发现一个还挺实用的工具指令,跟大伙分 ...
随机推荐
- Masonry 添加约束要注意顺序
对一个视图添加约束,其依赖的约束必须先已经存在,不能依赖该代码后的约束,否则造成不可预料的结果,如下代码能达到预期效果 - (void)makeConstraints { __weak typeof( ...
- html5获取图片的宽高
var fr = new FileReader; fr.readAsDataURL($("#inputFileId").files[0]); fr.onload = functio ...
- Android:View颤抖的动画效果代码
public void propertyValuesHolderDown(final View view) { PropertyValuesHolder pvhX = PropertyValuesHo ...
- 分布式版本控制系统Git-----1.Git 初识
开始工作咯,师傅让我开始学习Git.刚接触我是懵逼的,"分布式版本控制系统"啥玩意啊这是,大家可不能从字面意思上理解啊,刚开始,版本控制么,我以为是团队合作的时候把开发工具.JDK ...
- linux版本选择
桌面系统 -- Ubuntu,开发人员也喜欢用Ubuntu 服务器端 -- RHEL或CentOS,RHEL要钱 对安全要求很高 -- Decian或Free ...
- 1、IO输入&输出流 简介
IO流的分类: * 流向: * 输入流 读取数据 * 输出流 写出数据 * 数据类型: * 字节流 * 字节输入流 读取数据 InputStream * 字节输出流 写出数据 OutputStream ...
- 后台gird表单按钮操作
1.$this->_removeButton('reset');#########################################删除重置这个按钮.2.$this->_ad ...
- mac 电脑配置cordova
最近发现这个cordova有很多公司在用.所以想试试搭建一个ios平台上的cordova demo.在搭建之前我先说一些跟cordova相关的一些条件. 目前cordova项目在apache上开源.网 ...
- 更改自身web项目的图标(默认为tomcat的小喵咪)
在页面<head>标签中加入 <link rel="shortcut icon" href="img/11.png" type="i ...
- putty完全使用手册--多窗口---git提交---连接数据库--自动日志显示
01 putty dev 192.168.3.38 02 cd /home/gongfu/tripb/cranedev02.1 git status git add git commit git pu ...