Joh*_*ith 16 c++ arrays vector
我通常不确定何时使用一个与另一个相比更好.它们似乎总体上做同样的事情但是它的功能更加灵活吗?阵列什么时候更合适?
Chr*_* A. 16
通常总是喜欢使用,std::vector<T>因为一旦向量超出范围,销毁将自动进行,并且分配的内存将整齐地放在堆上,并且将为您处理所有内存. std::vector<T>为您提供数组中的所有内容,甚至保证元素将连续存储在内存中(除外std::vector<bool>).
在std::vector<bool>你必须小心的情况下,因为这样的代码会破坏:
std::vector<bool> vb;
vb.push_back(true);
vb.push_back(false);
vb.push_back(true);
bool *pB = &vb[0];
if( *(pB+1) )
{
// do something
}
Run Code Online (Sandbox Code Playgroud)
事实是,std::vector<bool>不存储连续的bools.这是C++ 11中修复的标准中的一个例外.
| 归档时间: |
|
| 查看次数: |
13068 次 |
| 最近记录: |