Debug / release模式
Debug模式下的代码比release模式具有更多的检测,比如在windows平台上assert宏只在release模式下有效。Linux上则没有这个限制,无论Debug还是release模式assert都生效,但是如果你想让assert失效,编译的时候 加上 -DNDEBUG 即可。
Debug检测
我们都说了Debug模式可以帮我们检测一些东西,但是可能会有额外的性能开销(虽然微不足道)。默认下Linux的动态库文件是集于Debug 和 release于一身的。看看这个列子
#include<vector>
using namespace std;
int main()
{
vector<int> v;
v.reserve(10); //容量为10 但是size 为0
v[3] = 1;
return