以下代码不会抛出错误:
int main()
{
typedef std::vector<int> intstack;
intstack mystack;
mystack.push_back(7);
mystack.push_back(8);
mystack.push_back(9);
mystack.pop_back();
std::cout << mystack.size(); //prints 2
std::cout << mystack[2]; // prints 9
return 0;
}
我会想到 std::cout << mystack[2]
这行会抛出错误,因为 vector 已被 pop_back
调整大小手术。为什么数据仍然可以访问?是不是因为底层数组中的数据还在, vector pop_back
操作只修改迭代器?
最佳答案
关于c++ - 为什么在调整大小后我仍然可以访问 vector 数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24253831/