벡터에서 원소를 제거하는 다양한 방법에 대해 알아보겠습니다.
10개의 데이터 {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}를 가지고 있는 벡터 vec이 있다고 가정하겠습니다.
std::vector<int> vec = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
// 맨 마지막 원소 하나를 제거합니다: {0, 1, 2, 3, 4, 5, 6, 7, 8}
vec.pop_back();
// 맨 처음 원소를 제거합니다: {1, 2, 3, 4, 5, 6, 7, 8}
vec.erase(vec.begin());
// 1번째 원소부터 4번째 앞 원소까지 제거합니다: {1, 5, 6, 7, 8}
vec.erase(vec.begin() + 1, vec.begin() + 4);
몇 가지 유용한 std::vector 멤버 함수를 추가로 소개하겠습니다.
• clear(): 모든 원소를 제거하여 완전히 비어 있는 벡터로 만듭니다.
• reserve(capacity): 벡터에서 사용할 용량을 지정합니다. 매개변수로 지정한 값이 현재 용량보다 크면 메모리를 매개변수 크기만큼 재할당합니다. 매개변수 값이 현재 용량보다 같거나 작으면 아무런 동작을 하지 않습니다. 이 함수는 벡터의 크기를 변경하지는 않습니다.
• shrink_to_fit(): 여분의 메모리 공간을 해제하는 용도로 사용됩니다. 이 함수를 호출하면 벡터의 용량이 벡터 크기와 같게 설정됩니다. 벡터 크기가 더 이상 변경되지 않을 때 사용하면 유용합니다.