C++의 벡터 지우기() 함수

Vector Erase Function C



배열은 여러 데이터를 저장하는 데 사용되며 배열의 요소 수는 런타임에 변경할 수 없습니다. 이 문제는 동적 배열처럼 작동하는 벡터를 사용하여 해결할 수 있습니다. 벡터 클래스에는 벡터에서 요소를 추가 및 제거하는 다양한 기능이 있습니다. Erase() 함수는 벡터의 크기를 줄이는 런타임에 벡터에서 하나 이상의 요소를 제거하는 데 사용됩니다. 이 기능의 사용법은 이 튜토리얼에서 설명했습니다.

통사론:

이 함수의 두 가지 유형의 구문이 아래에 나와 있습니다.







반복자 지우기(반복자 위치);

위의 erase() 함수는 벡터에서 단일 요소를 제거하는 데 사용되며 반복자를 반환하고 마지막으로 지워진 요소 다음에 오는 요소를 가리킵니다.



반복자 지우기(반복자 시작 위치, 반복자 종료 위치);

위의 지우기() 함수는 이 함수의 첫 번째 및 두 번째 인수에 언급된 위치를 기반으로 벡터에서 여러 요소를 제거하는 데 사용됩니다.



전제 조건:

이 튜토리얼의 예제를 확인하기 전에 시스템에 g++ 컴파일러가 설치되어 있는지 확인해야 합니다. Visual Studio Code를 사용하는 경우 필요한 확장을 설치하여 C++ 소스 코드를 컴파일하여 실행 코드를 만듭니다. 여기에서 Visual Studio Code 응용 프로그램은 C++ 코드를 컴파일하고 실행하는 데 사용되었습니다. 요소를 벡터에 삽입하기 위한 erase() 함수의 다양한 사용은 아래와 같습니다.





예-1: 첫 번째 요소 요소 제거

벡터 시작 부분에서 요소를 제거하려면 다음 코드를 사용하여 C++ 파일을 만듭니다. 코드에서 문자열 값의 벡터가 사용되었습니다. 벡터의 값은 하나의 매개변수와 함께 지우기() 함수를 사용하여 벡터에서 첫 번째 요소를 삭제하기 전과 후에 인쇄되었습니다.

//필요한 라이브러리 포함

#포함하다

#포함하다

사용 네임스페이스시간;

//벡터의 값을 표시

무효의display_vector(벡터<>과일)

{

//카운터 초기화

정수카운터= 1;

// 루프를 사용하여 벡터의 요소를 반복하고 인쇄합니다.

~을위한 (자동=과일.시작하다();!=과일.();++)

{

//요소가 마지막 요소인지 확인

만약(카운터!=과일.크기())

비용 << *<< ',';

또 다른

비용 << *;

//카운터를 1씩 증가

카운터++;

}

비용 <<;

}

정수기본(무효의) {

//문자열 데이터의 벡터 선언

벡터<>과일= { '주황색','바나나','망고','잭 과일','리치' };

//벡터의 기존 값을 출력

비용 << '제거 전 벡터의 값: ' <<;

display_vector(과일);

//벡터에서 첫 번째 요소 제거

과일.삭제(과일.시작하다());

//제거 후 벡터의 기존 값을 인쇄합니다.

비용 << 'N제거 후 벡터의 값: ' <<;

display_vector(과일);

반품 0;

}

산출:

위의 코드를 실행하면 다음 출력이 나타납니다.

예-2: 여러 요소 제거

Erase() 함수를 사용하여 벡터에서 여러 요소를 제거하는 다음 코드로 C++ 파일을 만듭니다. 코드에서 정수 값의 벡터가 사용되었습니다. 벡터에서 제거된 요소의 범위를 설정하기 위해 두 개의 반복자가 여기에서 사용되었습니다. Erase() 함수는 벡터에서 여러 요소를 제거하기 위해 두 개의 매개변수와 함께 사용되었습니다.

//필요한 라이브러리 포함

#포함하다

#포함하다

사용 네임스페이스시간;

//벡터 표시

무효의display_vector(벡터<정수>숫자)

{

// 루프를 사용하여 벡터의 값을 출력합니다.

~을위한(자동=숫자.시작하다();!=숫자.() ;++)

비용 << *<< '';

//새 줄 추가

비용 << 'N';

}

정수기본() {

//정수 데이터의 벡터 선언

벡터<정수>intArray{ 678,435,960,231,800,387,634,267,409,294};

//벡터의 기존 값을 출력

비용 << '제거 전 벡터의 값: ' <<;

display_vector(intArray);

// 벡터에서 요소 범위를 제거하기 위해 두 개의 반복자를 선언합니다.

벡터<정수> :: 반복자startEle, endEle;

//반복자를 첫 번째 위치로 설정

스타트 엘레=정수배열.시작하다();

//시작 반복자를 2씩 증가

전진(시작 엘,2);

//반복자를 마지막 위치로 설정

엔드엘레=정수배열.();

// 종료 반복자를 3만큼 감소

전진(엔드엘,-);

//요소의 범위를 제거

정수배열.삭제(startEle, endEle);

//제거 후 벡터의 기존 값을 인쇄합니다.

비용 << 'N제거 후 벡터의 값: ' <<;

display_vector(intArray);

반품 0;

}

산출:

위의 코드를 실행하면 다음 출력이 나타납니다. 반복자의 범위에 따라 벡터의 3번째 위치부터 7번째 위치까지 요소가 제거되었습니다.

예-3: 특정 요소 제거

Erase() 함수를 사용하여 벡터의 특정 요소를 제거하는 다음 코드로 C++ 파일을 만듭니다. 7개의 정수 요소로 구성된 벡터가 코드에서 선언되었습니다. 다음으로 'for' 루프는 벡터 요소를 반복하고 5로 나눌 수 없는 요소를 벡터에서 제거하는 데 사용되었습니다.

//필요한 라이브러리 포함

#포함하다

#포함하다

사용 네임스페이스시간;

정수기본()

{

//정수 데이터의 벡터 선언

벡터<정수>숫자= { 78,오분의 사,67,25,98,75,52 };

비용 << '제거 전 벡터의 값:N';

~을위한 (정수 상수 &NS:숫자) {

비용 <<NS<< '';

}

비용 <<;

//벡터에서 5로 나눌 수 없는 숫자를 제거합니다.

~을위한 (자동=숫자.시작하다();!=숫자.();++)

{

//숫자가 5의 배수인지 아닌지 확인

만약 (*% 5 != 0)

{

// 반복자를 기반으로 요소를 제거합니다.

숫자.삭제(-);

}

}

비용 << '제거 후 벡터의 값:N';

~을위한 (정수 상수 &NS:숫자) {

비용 <<NS<< '';


}


비용 <<;


반품 0;

}

산출:

위의 코드를 실행하면 다음 출력이 나타납니다. 출력은 벡터가 5로 나눌 수 있는 요소만 포함하고 다른 요소는 제거되었음을 보여줍니다.

결론:

벡터 요소를 제거하기 위해 이 튜토리얼에서 다양한 삭제() 함수를 사용했습니다. C++에는 벡터에서 요소를 제거하는 다른 많은 함수가 있으며 이러한 함수는 한 번에 단일 요소를 제거할 수 있습니다. 그러나 vector의 모든 위치에서 단일 요소와 다중 요소는 vector erase() 함수를 사용하여 제거할 수 있습니다.