C++ 删除向量中的一系列元素时返回迭代器的一种奇怪现象

C++ 删除向量中的一系列元素时返回迭代器的一种奇怪现象,c++,visual-studio-2010,vector,iterator,erase,C++,Visual Studio 2010,Vector,Iterator,Erase,源代码如下所示。当删除向量中的一系列元素时,我们可以推断返回迭代器引用元素30。但是在VisualStudio2010中,返回迭代器是不可解引用的,为什么 错误信息为: 向量迭代器不可解引用 vector <int> v1; vector <int>::iterator iter; v1.push_back( 10 ); v1.push_back( 20 ); v1.push_back( 30 ); v1.push_back( 40 ); v1.push_back( 50

源代码如下所示。当删除向量中的一系列元素时,我们可以推断返回迭代器引用元素30。但是在VisualStudio2010中,返回迭代器是不可解引用的,为什么

错误信息为: 向量迭代器不可解引用

vector <int> v1;
vector <int>::iterator iter;
v1.push_back( 10 );
v1.push_back( 20 );
v1.push_back( 30 );
v1.push_back( 40 );
v1.push_back( 50 ); 
iter = v1.erase( v1.begin( ), v1.begin( ) + 2 );
cout << *iter << endl;
向量v1;
向量:迭代器iter;
v1.推回(10);
v1.推回(20);
v1.推回(30);
v1.推回(40);
v1.推回(50);
iter=v1.erase(v1.begin(),v1.begin()+2);

VisualStudio2010中的cout.Bug@WernerHenze在注意到它在ideone上工作后,我决定在VS中进行测试。无法在VS2012和VS2010中复制它。@AlgirdasPreidžius VS2010 RTM或VS2010 with SP?它已在VS2010的SP1中修复。“看,”沃内伦兹解释道。这个版本的后缀是
SP1Rel
,我想这意味着我正在运行SP1,bug已经修复。