벡터 내부에 요소 집합이 있다고 가정합니다. 인덱스를 사용하여 제거하려면 벡터 클래스 유형의 erase() 함수를 사용하여 일부 제거 작업을 수행하고 마지막으로 나머지 요소를 표시해야 합니다. 삭제 기능은 인덱스를 직접 사용하지 않습니다. v.begin()+index를 전달하여 주소를 전달해야 합니다. 여기서 v는 벡터이고 v.begin()은 첫 번째 요소(0번째 요소)의 주소입니다. 이제 인덱스를 추가하면 지정된 인덱스에 있는 요소로 이동합니다.
따라서 입력이 v =[5,8,6,3,2,0,1,4] 인덱스 2, 6 및 5에서 지우기와 같은 경우 출력은 [5,8,3,2,0 ] 초기 배열이 [5,8,6,3,2,0,1,4]였기 때문에 인덱스 2에서 요소를 제거한 후 이제 [5,8,3,2,0,1,4]입니다. 인덱스 6의 요소는 4이므로 제거한 후 배열은 [5,8,6,3,2,0,1]이 되고 이제 인덱스 5의 항목은 1이므로 제거한 후 배열은 [5,8,3,2,0]이 됩니다.
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
-
v.erase(v.begin()+2)
에 의해 인덱스 2의 요소 지우기 -
v.erase(v.begin()+6)
에 의해 인덱스 6의 요소 지우기 -
v.erase(v.begin()+5)
에 의해 인덱스 5의 요소 지우기
예
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
#include <iostream> #include <vector> #include <algorithm> using namespace std; int main(){ vector<int> v = {5,8,6,3,2,0,1,4}; v.erase(v.begin()+2); v.erase(v.begin()+6); v.erase(v.begin()+5); for(int i = 0; i<v.size(); i++){ cout << v[i] << " "; } }
입력
{5,8,6,3,2,0,1,4}
출력
5 8 3 2 0