#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第二个参数是引用传递的,赋值时迭代骂已经无效了(原因是元素要往后移)