c++记录(231)

数组检测

1
sizeof(0[t]);//可以检测这个是数组还是类:对数组来说0[t] t[0]都是一样的。但是对类来说,这是个操作函数(一定要实现它的operator函数哦)

类完整性判断

1
2
3
4
typedef char tt_f[sizeof(f) ? 1 : -1];
(void)sizeof(tt_f);
//要注意sizeof的执行是编译期间执行的
//所以当类不完整 sizof(f)为0; char[-1]就会编译错误

循环删除
循环删除由于存在访问异常的情况,
有一种方法,即解决访问问题,又能删除想要的。

所以尾部删除好点

1
2
3
4
5
6
7
for (int i = f.Count - 1; i >= 0; i--)
{
if (f[i] > 5)
{
f.RemoveAt(i);
}
}
// //