基甲彪汉下载,爱ppt模板,www.2008.tv
优先使用线性算法或者尽可能快的算法:
尽可能避免劣于线性复杂性的算法,永远不要使用指数复杂性的算法;
例外情况: cin/cout/cerr 比较特殊: cout << "hello world" 等价于
(cout, "hello world");
使用c++编写可靠的多线程的代码,认真考虑下面的建议:
如果编写可能用于多线程的类型,必须完成两项任务:
比如:
void fun(shared_ptr<widget> sp1, shared_ptr<widget> sp2);
fun(shared_ptr<widget>(new widget), shared_ptr<widget>(new widget));
由于参数初始化的顺序可能因为编译器的不同而改变,一种极端的情况是:
同时执行了对两个对象的new 操作的内存分配操作,然后再试图调用两个widget 构造函数。如果这个时候某个构造函数调用抛出异常,另外一个对象的内存就永远没有机会释放了。
解决方法:绝对不要在一条语句中分配一个以上的资源,应该显式地执行资源分配(比如new),然后马上将申请分配的资源赋予给管理对象。例如:
shared_ptr<widget> sp1(new widget);
shared_ptr<widget> sp2(new widget);
fun(sp1, sp2);
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
如何在没有core文件的情况下用dmesg+addr2line定位段错误
用QT制作3D点云显示器——QtDataVisualization
网友评论