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

问题描述 投票:-2回答:1
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索引)./*这些代码存储虽然我将它们存储在1个索引中,但是元素为0索引。我认为擦除功能操纵它* /

c++ c++11 vector std stdvector
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.