随笔分类 - C++
摘要:http://www.cplusplus.com/reference/bitset/bitset/bitset/
阅读全文
摘要:这篇讲的不错: http://blog.csdn.net/smstong/article/details/50728022 首先Active Record 然后EBP,ESP等指针 2 通过setjmp和longjmp操纵AR,完成任意跳转 setjmp/longjmp主要从嵌套的函数调用中跳出来。
阅读全文
摘要:可以看这里: http://blog.csdn.net/huyiyang2010/article/details/5984987 现在的new是会抛出异常的,bad::alloc 如果不想抛出异常两种方法: 1. 用nothrow版本, new (std::nothrow) xxx(); 那样new
阅读全文
摘要:看这里: http://blog.csdn.net/lollipop_jin/article/details/8499530 shared_ptr可以多线程同时读,但是涉及到写,需要加锁。 shared_ptr开销较大。 多个(5个以上)shared_ptr共享一个动态对象,那么每个shared_p
阅读全文
摘要:书上讲了一个例子,一个德文字符,没有转成大写。 要转的话,要设置 set_locale
阅读全文
摘要:加锁和解锁,也可以在构造函数和析构函数里面,自动调用。 相等和等价的关系:等价是用在排序的时候,跟less函数有关。 vector,deque,string 要用erase-remove组合;而关联容器,直接erase就可以了。 copy(x.begin(), x.end(), ostream_it
阅读全文
摘要:参考 http://www.cnblogs.com/zhuyf87/archive/2013/04/04/2999916.html 1. 判断奇偶 if (a & 1) 2. 交换两数 a ^= b; b ^= a; a ^= b; 3. 变换正负符号 ~a + 1 4. 取绝对值 (a >> 31
阅读全文
摘要:这个new_handler其实对应于signal_handler 当operator new申请一个内存失败时,它会进行如下的处理步骤:1、如果存在客户指定的处理函数,则调用处理函数(new_handler),如果不存在则抛出一个异常。new_handler的模型为:void (*new_handl
阅读全文
摘要:http://blog.csdn.net/yutianzuijin/article/details/40268445 首先是常规解法,二分法: 然后是牛顿迭代法。 好巧妙呀! 注意,初值选择很重要。 一步到位,不需要迭代的,牛逼的卡马克算法。是在一段游戏代码里面的。 其实一步也就可以了。
阅读全文
摘要:http://blog.163.com/miky_sun/blog/static/3369405201041753652505/
阅读全文
摘要:http://blog.csdn.net/zjq2008wd/article/details/38417859 首先看代码,静态数据成员分为两种情况,第一种不依赖模版类型参数,第二种依赖模版类型参数。 template <typename T> class TestTemStatic { publi
阅读全文
摘要:下面这篇文章讲的很好。 http://www.cnblogs.com/lihaosky/articles/1606502.html 假设我们有这样的一个类: class Base { public: virtual void f() { cout << "Base::f" <<> virtual v
阅读全文
摘要:编译 #gcc -g -o test test.c 内存检查#valgrind --tool=memcheck --leak-check=yes --show-reachable=yes ./test Memcheck 能够检测出内存问题,关键在于其建立了两个全局表。 对于进程的整个地址空间中的每一
阅读全文
摘要:http://www.cnblogs.com/zhuyf87/archive/2013/03/23/2976714.html 第一种是正常的new,它是语言内建的,不能重载。 new operator完成以下三件工作: 1. allocate memory for this object. 2. c
阅读全文
摘要:这篇文章的内容还是不错的: http://www.cnblogs.com/zhuyf87/archive/2012/12/08/2808290.html 这个循环本身没有明显错误,存在的只是一些风格上的问题。 (1)尽量做到const正确性。如果迭代器没有用来修改vector中的元素,应该改用con
阅读全文
摘要:vector的元素类别T,必须具备assignable和copyable两个性质。 vector的容量很重要: 1. 一旦内存重新配置,和vector元素相关的所有references、pointers、iterators都会失效。 2. 内存重新分配很耗时间。 所以,如果程序管理了和vector元
阅读全文
摘要:最重要的区别,是内部实现上。deque是分段存储的。 都是支持随机存取。 http://www.cnblogs.com/zhuyf87/archive/2012/12/09/2809896.html deque与vector的主要不同之处在于: 1. 两端都能快速安插和删除元素,这些操作可以在分期摊
阅读全文
摘要:new操作符的static(因为new的时候,还没有空间和实例,还需要分配地址,所以肯定是static的) register,以前的关键词了。建议放置在寄存器里面,而且获取其地址是非法的。现在统一忽略。
阅读全文
摘要:父类加了virtual,子类不需要加virtual,多余。加了也不会报错。 父类中不是virtual,子类是virtual,那么父类中的不是虚函数,子类及子子类的派生类中该函数才是虚函数
阅读全文
摘要:除了在头文件里面 #ifndef xxx 可以在实际 include这个头文件的前后,加上 #ifndef,这样就不会打开和扫描这个头文件了。 另外,下面这篇文章里面也总结了 http://www.cnblogs.com/jacktu/archive/2010/07/15/1777974.html
阅读全文