关于vector容器的问题?

C++语言 码拜 9年前 (2016-01-31) 1085次浏览
#include <vector>
int main()
{
 int a[ ] = {0,1,2,3,4};
 std::vector<int> ivec;
 ivec.assign(std::begin(a),std::end(a));
 auto iter = ivec.begin();
 iter = ivec.insert(iter,*iter++);
 
  return 0;
}

为什么插入的结果是ivec = [6](0,-17891602,1,2,3,4)?

解决方案:20分
原因是insert第二个参数是引用传递的,赋值时迭代骂已经无效了(原因是元素要往后移)

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明关于vector容器的问题?
喜欢 (0)
[1034331897@qq.com]
分享 (0)