我们知道vector是以一段连续的空间来存储元素的,当然这不是今天的重点,今天要说的是如果我们在不加锁的情况下使用遍历器,会有什么后果。
代码如下:
#include <iostream>
#include <vector>
using std::vector;
using std::cout;
using std::endl;
int main(int argc, char* argv[])
{
vector<int> vct_tmp;
vct_tmp.reserve(2);
vct_tmp.push_back(1);
vector<int>::const_iterator iter = vct_tmp.begin();
vct_tmp.push_back(2);
cout << "value:" << *iter << endl;
}
执行结果:
嗯,没啥问题,继续。
现在的代码如下:
#include <iostream>
#include <vector>
using std::vector;
using std::cout;
using std::endl;
int main(int argc, char* argv[])
{
vector<int> vct_tmp;
vct_tmp.reserve(2);
vct_tmp.push_back(1);
vector<int>::const_iterator iter = vct_tmp.begin();
vct_tmp.push_back(2);
vct_tmp.push_