摘要:std::weak_ptr 避免shared_ptr内存泄漏的利器。 smart pointer 三兄弟性格各异。unque_ptr是独来独往,shared_ptr是左拥右抱,而weak_ptr生来就不是为了单打独斗,了解之后你会发现他总是和shared_ptr出双入对。 既然shared_ptr是
阅读全文
摘要:#include <iostream> #include <cassert> #include <stack> #include <math.h> using namespace std; int QuickSortOnce(int a[], int low, int high) { // 将首元素
阅读全文
摘要:#pragma once是一个比较常用的C/C++杂注,只要在头文件的最开始加入这条杂注,就能够保证头文件只被编译一次。 #pragma once是编译器相关的,有的编译器支持,有的编译器不支持,具体情况请查看编译器API文档,不过现在大部分编译器都有这个杂注了。 #ifndef,#define,#
阅读全文
摘要:什么是友元类 当一个类B成为了另外一个类A的“朋友”时,那么类A的私有和保护的数据成员就可以被类B访问。我们就把类B叫做类A的友元。 友元类能做什么 友元类可以通过自己的方法来访问把它当做朋友的那个类的所有成员。但是我们应该注意的是,我们把类B设置成了类A的友元类,但是这并不会是类A成为类B的友元。
阅读全文
摘要:转自http://www.cnblogs.com/uniqueliu/archive/2011/07/10/2102238.html 对于一个存在着标准输入输出的C++控制台程序,一般会在#include <iostream>的下一行发现一句话,using namespace std。这句话其实就表
阅读全文
摘要:c++异常处理的真正能力,不仅在于他能够处理各种不同类型的异常,还在于它具有为异常抛掷前构造的所有局部对象自动调用析构函数的能力。 在程序中,找到一个匹配的catch异常处理后,如果catch子句的异常类型声明是一个值参数,则其初始化方式是复制被抛掷的异常对象。如果catch子句的异常类型声明是一个
阅读全文
摘要:在编写软件时,不仅要有正确性,而且应该具有容错能力。这里就要引入异常处理了。 1、异常处理的基本思想 程序运行中的有些错误可以预料但不可避免的,如内存空间不足、硬盘上的文件被移动等由系统运行环境造成的错误。这时要力争做到允许用户排除环境错误,继续运行程序;至少要给出适当的提示信息。这就是异常处理程序
阅读全文
摘要:一个输入流对象是数据流出的源头,三个最重要的流类是istream、ifstream、istringstream。 istream类最适合用于顺序文本模式输入。基类ios的所有功能都包括在istream中。 我们通常使用预先定义的cin对象,它实际上是istream_withassign类的一个对象。
阅读全文