[C++] vector element 제거 std::vector::erase()

bolee·2022년 12월 1일
0

C++

목록 보기
7/16
post-thumbnail

std::vector::erase()

#include <vector>

iterator erase (const_iterator position);
iterator erase (const_iterator first, const_iterator last);

vector에서 단일 요소(position) 또는 요소 범위( [first,last) )를 제거하는 함수이다.
제거되어 소멸되는 요소 수만큼 컨테이너 크기가 줄어든다.

벡터는 기본적으로 배열이기 때문에 요소를 지우면 모든 요소가 새 위치로 재배치된다.
일반적으로 다른 종류의 시퀀스 컨테이너(예: list 또는 forward_list )에서 동일한 작업에 비해 비효율적이다.

Parameters

parametersdescription
position제거할 단일 요소를 가리키는 iterator
first범위의 시작 iterator
범위에 포함된다.
last범위의 끝 iterator
범위에 포함되지 않는다.

Return value

지워진 요소의 다음 요소가 재배치된 위치의 iterator를 반환한다.
vector의 마지막 요소가 제거되었다면, 크기가 줄어진 vector의 마지막 위치의 iterator를 반환한다.


Example

#include <iostream>
#include <vector>

using namespace std;

int main ()
{
  vector<int> myvector;

  // set some values (from 1 to 10)
  for (int i=1; i<=10; i++) myvector.push_back(i);
  
  cout << "myvector contains:";
  for (unsigned i=0; i<myvector.size(); ++i)
  	cout << ' ' << myvector[i];
  cout << '\n';

  // 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 (unsigned i=0; i<myvector.size(); ++i)
  	cout << ' ' << myvector[i];
  cout << '\n';

  return 0;
}

Output

myvector contains: 1 2 3 4 5 6 7 8 9 10
myvector contains: 4 5 7 8 9 10

참고 자료

0개의 댓글