San*_*n G -6 c++ stdvector c++14
int main () {
std::vector <int> elements;
elements.push_back (1);
elements [10000] = 102;
std:: cout << elements [10000];
return 0;
}
Run Code Online (Sandbox Code Playgroud)
上面的代码如何工作?据我所知,矢量的增长率为1.5 - 2倍.那么第10000个元素如何存储在这里?这里的预期行为不是"分段错误"吗?但以上运行成功.
那么第10000个元素如何存储在这里?
元素不存储在向量中.它被"存储"在一个与向量无关的内存中.
这里的预期行为不是"分段错误"吗?
不行.行为未定义,因此没有预期的行为.
但以上运行成功.
当行为未定义时,这是一种可能的行为.
| 归档时间: |
|
| 查看次数: |
108 次 |
| 最近记录: |