배열은 여러 데이터를 저장하는 데 사용되며 배열의 요소 수는 런타임에 변경할 수 없습니다. 이 문제는 동적 배열처럼 작동하는 벡터를 사용하여 해결할 수 있습니다. 벡터 클래스에는 벡터에서 요소를 추가하고 제거하는 다양한 함수가 있습니다. erasure() 함수는 런타임 시 벡터에서 하나 이상의 요소를 제거하여 벡터 크기를 줄이는 데 사용됩니다. 이 튜토리얼에서는 이 기능의 사용법을 설명했습니다.
통사론:
이 함수의 두 가지 유형의 구문이 아래에 나와 있습니다.
반복자 지우기 ( 반복자 위치 ) ;
위의 erasure() 함수는 벡터에서 단일 요소를 제거하는 데 사용되며 반복자를 반환하고 마지막으로 지워진 요소가 뒤에 오는 요소를 가리킵니다.
반복자 지우기 ( 반복자 시작_위치, 반복자 종료_위치 ) ;
위의 erasure() 함수는 이 함수의 첫 번째 및 두 번째 인수에 언급된 위치를 기반으로 벡터에서 여러 요소를 제거하는 데 사용됩니다.
전제 조건:
이 튜토리얼의 예제를 확인하기 전에 g++ 컴파일러가 시스템에 설치되어 있는지 확인해야 합니다. Visual Studio Code를 사용하는 경우 C++ 소스 코드를 컴파일하여 실행 가능한 코드를 생성하는 데 필요한 확장을 설치합니다. 여기서는 Visual Studio Code 애플리케이션을 사용하여 C++ 코드를 컴파일하고 실행했습니다. 벡터에 요소를 삽입하기 위한 eraser() 함수의 다양한 용도는 아래와 같습니다.
예제-1: 첫 번째 요소 요소 제거
벡터의 시작 부분에서 요소를 제거하려면 다음 코드를 사용하여 C++ 파일을 만듭니다. 문자열 값의 벡터가 코드에 사용되었습니다. 벡터의 값은 하나의 매개변수와 함께 erat() 함수를 사용하여 벡터에서 첫 번째 요소를 삭제하기 전후에 인쇄되었습니다.
//필요한 라이브러리 포함#include
#include <벡터>
사용하여 네임스페이스 성병 ;
//벡터 값을 표시합니다.
무효의 디스플레이_벡터 ( 벡터 < 끈 > 과일 )
{
//카운터 초기화
정수 카운터 = 1 ;
//루프를 사용하여 벡터 요소를 반복하고 인쇄합니다.
~을 위한 ( 자동 그 = 과일. 시작하다 ( ) ; 그 ! = 과일. 끝 ( ) ; 그 ++ )
{
//요소가 마지막 요소인지 확인하십시오.
만약에 ( 카운터 ! = 과일. 크기 ( ) )
시합 << * 그 << ', ' ;
또 다른
시합 << * 그 ;
//카운터를 1씩 증가시킵니다.
카운터 ++ ;
}
시합 << 끝 ;
}
정수 기본 ( 무효의 ) {
//문자열 데이터 벡터 선언
벡터 < 끈 > 과일 = { '주황색' , '바나나' , '망고' , '잭프루트' , 그 열매 } ;
//벡터의 기존 값을 인쇄합니다.
시합 << '제거 전 벡터 값: ' << 끝 ;
디스플레이_벡터 ( 과일 ) ;
//벡터에서 첫 번째 요소를 제거합니다.
과일. 삭제 ( 과일. 시작하다 ( ) ) ;
//제거 후 벡터의 기존 값을 인쇄합니다.
시합 << ' \N 제거 후 벡터 값: ' << 끝 ;
디스플레이_벡터 ( 과일 ) ;
반품 0 ;
}
산출:
위 코드를 실행하면 다음과 같은 출력이 나타납니다.
예-2: 여러 요소 제거
erasure() 함수를 사용하여 벡터에서 여러 요소를 제거하려면 다음 코드로 C++ 파일을 만듭니다. 코드에는 정수 값의 벡터가 사용되었습니다. 여기서는 벡터에서 제거되는 요소의 범위를 설정하기 위해 두 개의 반복자가 사용되었습니다. 벡터에서 여러 요소를 제거하기 위해 두 개의 매개변수와 함께 erasure() 함수가 사용되었습니다.
//필요한 라이브러리 포함#include <벡터>
#include
사용하여 네임스페이스 성병 ;
//벡터 표시
무효의 디스플레이_벡터 ( 벡터 < 정수 > 숫자 )
{
//루프를 사용하여 벡터 값을 인쇄합니다.
~을 위한 ( 자동 그 = 숫자. 시작하다 ( ) ; 그 ! = 숫자. 끝 ( ) ; 그 ++ )
시합 << * 그 << ' ' ;
//새 줄 추가
시합 << ' \N ' ;
}
정수 기본 ( ) {
//정수 데이터 벡터 선언
벡터 < 정수 > intArray { 678 , 435 , 960 , 231 , 800 , 387 , 634 , 267 , 409 , 294 } ;
//벡터의 기존 값을 인쇄합니다.
시합 << '제거 전 벡터 값: ' << 끝 ;
디스플레이_벡터 ( intArray ) ;
//벡터에서 요소 범위를 제거하기 위해 두 개의 반복자를 선언합니다.
벡터 < 정수 > :: 반복자 시작Ele, endEle ;
//반복자를 첫 번째 위치로 설정
시작해봐 = intArray. 시작하다 ( ) ;
//시작 반복자를 2씩 증가시킵니다.
전진 ( 시작하고, 2 ) ;
//반복자를 마지막 위치로 설정
끝Ele = intArray. 끝 ( ) ;
//종료 반복자를 3씩 감소시킵니다.
전진 ( 끝Ele, - 삼 ) ;
//요소 범위 제거
intArray. 삭제 ( 시작Ele, endEle ) ;
//제거 후 벡터의 기존 값을 인쇄합니다.
시합 << ' \N 제거 후 벡터 값: ' << 끝 ;
디스플레이_벡터 ( intArray ) ;
반품 0 ;
}
산출:
위 코드를 실행하면 다음과 같은 출력이 나타납니다. 반복자의 범위에 따라 벡터의 3번째 위치부터 7번째 위치까지의 요소가 제거되었습니다.
예시-3: 특정 요소 제거
erasure() 함수를 사용하여 벡터의 특정 요소를 제거하려면 다음 코드로 C++ 파일을 만듭니다. 7개의 정수 요소로 구성된 벡터가 코드에 선언되었습니다. 다음으로, 'for' 루프는 벡터 요소를 반복하고 벡터에서 5로 나눌 수 없는 요소를 제거하는 데 사용되었습니다.
//필요한 라이브러리 포함#include
#include <벡터>
사용하여 네임스페이스 성병 ;
정수 기본 ( )
{
//정수 데이터 벡터 선언
벡터 < 정수 > 숫자 = { 78 , 넷 다섯 , 67 , 25 , 98 , 75 , 52 } ;
시합 << '제거 전 벡터 값: \N ' ;
~을 위한 ( 정수 const & 나 : 숫자 ) {
시합 << 나 << ' ' ;
}
시합 << 끝 ;
//5로 나누어지지 않는 숫자를 벡터에서 제거합니다.
~을 위한 ( 자동 그 = 숫자. 시작하다 ( ) ; 그 ! = 숫자. 끝 ( ) ; 그 ++ )
{
//숫자가 5로 나누어지는지 확인합니다.
만약에 ( * 그 % 5 ! = 0 )
{
//반복자를 기반으로 요소를 제거합니다.
숫자. 삭제 ( 그 -- ) ;
}
}
시합 << '제거 후 벡터 값: \N ' ;
~을 위한 ( 정수 const & 나 : 숫자 ) {
시합 << 나 << ' ' ;
}
시합 << 끝 ;
반품 0 ;
}
산출:
위 코드를 실행하면 다음과 같은 출력이 나타납니다. 출력에서는 벡터에 5로만 나눌 수 있는 요소만 포함되어 있고 다른 요소는 제거되었음을 보여줍니다.
결론:
이 튜토리얼에서는 벡터 요소를 제거하기 위해 erasure() 함수를 다양하게 사용하는 방법을 보여줍니다. C++에는 벡터에서 요소를 제거하는 다른 많은 함수가 있으며 이러한 함수는 한 번에 단일 요소를 제거할 수 있습니다. 그러나 벡터 erame() 함수를 사용하면 벡터의 모든 위치에서 단일 요소와 여러 요소를 모두 제거할 수 있습니다.