STL c++
文章平均质量分 58
Code-Not-Cold
这个作者很懒,什么都没留下…
展开
-
stl list自定义排序准则
list和vector默认的排序准则是升序排序,我们可以通过传递自定义参数的方式,指定他的排序准则。通常有两种指定方式:(1)通过传递比较函数(2)传递函数对象/************************************************************************* > File Name: listSort.cpp >原创 2016-03-31 14:34:19 · 576 阅读 · 0 评论 -
weak_ptr解决shared_ptr环状引用所引起的内存泄漏
循环引用:引用计数是一种便利的内存管理机制,但它有一个很大的缺点,那就是不能管理循环引用的对象。一个简单的例子如下:#include#include #include #include class parent;class children;typedef boost::shared_ptr parent_ptr;typedef boost::s转载 2016-04-01 15:18:34 · 578 阅读 · 0 评论 -
虚函数表剖析(借助gdb和vc工具)
问题之前分析了c++中的类成员函数的重载、隐藏和覆盖之间的关系,我们从概念上有了清晰的区分,主要是分析覆盖与隐藏之间的关系,但是当子类的函数隐藏了基类的同名虚函数时,我并不清楚具体的实现机制是什么,我们都知道虚函数的调用发生在运行时期,每个类如果存在虚函数则就有相应的虚函数表,但在基类的虚函数被隐藏时,派生类的虚函数表中是否存在被隐藏的基类虚函数的指针,以及如何对虚函数表中的函数的查看,下面进行分析原创 2016-05-04 20:47:56 · 3032 阅读 · 0 评论 -
C++插入迭代器模板参数为何要有空格?
vector<int> collback_insert_iterator<vector<int>> iter(coll);上面这句不能通过:back_insert_iterator<vector<int> >iter(coll);在>>之间加个空格,就行了。。不加的话编译器会把>>当做右移操作符原创 2016-06-01 15:19:29 · 409 阅读 · 0 评论 -
用VS2010编写的C++程序,在其他电脑上无法运行,提示缺少mfc100.dll的解决办法
问题:在自己电脑上用VS2010编写的VC++程序(使用MFC库),不能在其他电脑上运行。双击提示:“无法启动此程序,因为计算机中丢失mfc100.dll 尝试重新安装该程序以解决此问题。”解决方案:方案1.采用静态编译 使用VS2010编译的程序在windows xp中运行时,经常会出现找不到相关的DLL文件,我们可以使用静态编译的方法把这些运行依赖文件打包转载 2016-07-24 19:43:24 · 7016 阅读 · 0 评论