使用erase()后排列向量元素

时间:2017-12-25 10:37:58

标签: c++ c++11 vector std stdvector

for ( i=1; i<=10; i++) myvector.push_back(i);

  // erase the 6th element
  myvector.erase (myvector.begin()+5);

  // erase the first 3 elements:
  myvector.erase (myvector.begin(),myvector.begin()+3);

  cout << "myvector contains:";
  for (i=0; i<myvector.size(); ++i)

我有什么方法可以操作擦除功能,这样我就不必在i = 0之后开始,而是我可以存储i = 1的元素(基本上我想保留1索引)。 / *这些代码将元素存储为0索引,尽管我将它们存储在1个索引中。我认为擦除功能会操纵它* /

1 个答案:

答案 0 :(得分:0)

我相信你可以在使用for循环之前将所需元素后面的元素向下移动一个索引,然后擦除最后一个元素。 例如,你想要擦除元素5,你可以做元素5 =元素6和元素6 =元素7 ...依此类推。到达最后一个元素并执行元素100(最后一个元素)=元素99时,在位置99和100处有2个元素100副本。然后擦除位置100处的元素。