Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

주어진 벡터에서 항목을 제거하는 C++ 프로그램

<시간/>

벡터 내부에 요소 집합이 있다고 가정합니다. 인덱스를 사용하여 제거하려면 벡터 클래스 유형의 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