C++语言类
文章平均质量分 78
一休求索
路漫漫其修远兮,吾将上下而求索!
当一个人找不到出路的时候,最好的办法就是将当前能做好的事情做到极致,做到无人能及
展开
-
Reverse_iterator的使用
转载出:http://blog.csdn.net/zdl1016/article/details/1517955和http://blog.csdn.net/huang_xw/article/details/8205784这个reverse_iterator曾经搞得我头大,其对应的函数也是那么的可不理解...现在一切都好了.对于left_null>1->2->3->4转载 2015-12-20 16:10:50 · 988 阅读 · 0 评论 -
C++ 加锁的原则
规则10.1 多线程、进程并行访问共享资源时,一定要加锁保护 说明:共享资源包括全局变量,静态变量,共享内存,文件等。 建议封装像智能指针一样的对象对锁进行管理,比如我们就封装了一个auto_lock,在构造时申请 锁,析构中释放锁,保证不会忘记“解锁”。如果锁的作用范围有限,则可以这样: do { auto_lock lock(&lock); //.... }while(0)转载 2016-10-26 09:51:21 · 15002 阅读 · 0 评论 -
Ubuntu 内存泄漏检测工具Valgrind的安装
第一种方式:下载源码,编译安装,比较复杂wget http://valgrind.org/downloads/valgrind-3.4.1.tar.bz2tar xvf valgrind-3.4.1.tar.bz2cd valgrind-3.4.1/./configure --prefix=/usr/local/makemake install转载 2016-07-22 09:18:47 · 945 阅读 · 0 评论 -
C/C++的内存泄漏检测工具Valgrind memcheck的使用经历
Linux下的Valgrind真是利器啊(不知道Valgrind的请自觉查看参考文献(1)(2)),帮我找出了不少C++中的内存管理错误,前一阵子还在纠结为什么VS 2013下运行良好的程序到了Linux下用g++编译运行却崩溃了,给出一堆汇编代码也看不懂。久久不得解过后,想想肯定是内存方面的错误,VS在这方面一般都不检查的,就算你的程序千疮百孔,各种内存泄露、内存管理错误,只要不影响运行,没有读转载 2016-07-22 08:46:12 · 1348 阅读 · 0 评论 -
windows下内存泄露检测
对于一个c/c++程序员来说,内存泄漏是一个常见的也是令人头疼的问题。已经有许多技术被研究出来以应对这个问题,比如 Smart Pointer,Garbage Collection等。Smart Pointer技术比较成熟,STL中已经包含支持Smart Pointer的class,但是它的使用似乎并不广泛,而且它也不能解决所有的问题;Garbage Collection技术在Java中已经比转载 2016-07-22 08:39:56 · 6040 阅读 · 0 评论 -
基于C++ list中erase与remove函数的使用详解
erase的作用是,使作为参数的迭代器失效,并返回指向该迭代器下一参数的迭代器。如下:复制代码代码如下:list ParticleSystem;list::iterator pointer;if(pointer->dead == true){ pointer = ParticleSystem.erase(pointer);}有一段转载 2016-07-21 08:16:36 · 4404 阅读 · 1 评论 -
C++ STL中Map的按Key排序和按Value排序
map是用来存放键值对的数据结构,可以很方便快速的根据key查到相应的value。假如存储学生和其成绩(假定不存在重名,当然可以对重名加以区分),我们用map来进行存储就是个不错的选择。 我们这样定义,map,其中学生姓名用string类型,作为Key;该学生的成绩用int类型,作为value。这样一来,我们可以根据学生姓名快速的查找到他的成绩。 但是,我们除了希望能够查询某转载 2016-04-09 10:23:02 · 244 阅读 · 0 评论 -
c++ list, vector, map, set 区别与用法比较(2)
转载处:http://blog.csdn.net/alex_xhl/article/details/37692297List封装了链表,Vector封装了数组, list和vector得最主要的区别在于vector使用连续内存存储的,他支持[]运算符,而list是以链表形式实现的,不支持[]。Vector对于随机访问的速度很快,但是对于插入尤其是在头部插入元素速度很慢,在尾部插入速转载 2016-03-10 09:50:28 · 478 阅读 · 0 评论 -
c++ list, vector, map, set 区别与用法比较
转载处:http://blog.csdn.net/wangran51/article/details/8836160set集合容器:实现了红黑树的平衡二叉检索树的数据结构,插入元素时,它会自动调整二叉树的排列,把元素放到适当的位置,以保证每个子树根节点键值大于左子树所有节点的键值,小于右子树所有节点的键值;另外,还得保证根节点左子树的高度与右子树高度相等。平衡二叉检索树使用中序遍历算法,检转载 2016-03-10 09:46:36 · 344 阅读 · 0 评论 -
让我印象深刻并很喜欢的一个bug
【51CTO.com快译】那是在2013年11月初,我和朋友在准备参加一年一度的美国计算机协会(ACM)主办的国际大学生程序设计竞赛(ICPC)区域赛,选择的项目是各种算法和数据结构。据我了解,跳表并不经常用于编程比赛,但是它是一种用户维护有序元素的数据结构。我们认为将跳表添加到自己的库也许是个好主意。(注意:我们选择的编程语言C++已经通过其标准库,提供了平衡二进制搜索树,但是不支持扩增(aug转载 2016-12-20 09:31:55 · 13565 阅读 · 1 评论