防止头文件重复定义
-
有两种方法,分别是
#ifndef xxx_h #define xxx_h ... #endif
#pragma once
头文件已使用上述方法却仍然multiple define
- 注意,头文件只能声明不能定义,否则出错
- c++类中私有成员中的静态变量初始化方式
//.h文件
class Test{
static double A;
static double B();
};
//.cpp文件
double Test::A= 2.0; //正确的静态成员初始化
vector
erase操作
-
原理:删除过程中对于指定iter后面的数据全部向前移动进行覆盖
-
注意点:删除之后所删除位置的iter可能变为野指针(若iter是最后一个)因此对于这种情况要妥善处理
-
测试代码
#include <vector>
#include <cstdio>
using namespace std;
int main(){
vector <int> a;
a.clear();
a.push_back(1);
a.push_back(2);
a.push_back(3);
for(int i = 0; i < a.size(); i++)
printf("%d ", a[i]);
vector<int>::iterator itr = a.begin();
a.erase(itr+1);
for(int i = 0; i < a.size(); i++)
printf("%d ", a[i]);
}
Catch2 测试框架中的SECTION
在进行一次大量数据测试时,SECTION进入死循环状态,无法跳出,断点也无法定位问题所在,改变为TEST_CASE直接运行后正常运行,问题未知,猜测与函数中内存限制有关。