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

C++ STL의 forward_list::unique( )

<시간/>

C++에서 forward_list::unique() 함수의 작동을 보여주는 작업이 주어집니다.

순방향 목록은 시퀀스 내 어디에서나 일정한 시간 삽입 및 지우기 작업을 허용하는 시퀀스 컨테이너입니다. 순방향 목록은 단일 연결 목록으로 구현됩니다. 순서는 시퀀스의 다음 요소에 대한 링크의 각 요소에 대한 연결에 의해 유지됩니다.

forward_list::unique()는 C++ 표준 라이브러리 함수의 함수로, 정방향 목록에서 모든 중복 요소를 제거하는 데 사용됩니다. 요소가 즉시 요소와 동일하게 비교되는 경우에만 forward_list 컨테이너에서 요소가 제거된다는 점에 유의하십시오. 따라서 이 기능은 정렬된 목록에 특히 유용합니다.

구문

Forwardlist_name.unique(binarypredicate name)

이진 술어의 구문

bool 이름(데이터 유형 a, 데이터 유형 b)

매개변수 − 이 함수는 요소가 동일한 것으로 취급되어야 하는 경우 true를 반환하는 이진 술어인 단일 매개변수를 허용합니다.

예시

Output – List : 4, 4, 17, 32, 45, 56, 56, 45, 32, 4, 17, 17
   After Unique operation output is
      Unique list : 4, 17, 32, 45, 56
Output – List : 15.2, 74.0, 3.14, 15.2, 69.5, 74.0, 3.14, 18.5, 3.99
   After Unique operation output is
      Unique list : 3.14, 3.99, 15.2, 18.5, 69.5, 74.0

접근법을 따를 수 있음

  • 먼저 이진 술어 함수를 만듭니다.

  • 그런 다음 앞으로 목록을 초기화합니다.

  • 그런 다음 unique( ) 함수를 정의합니다.

  • 그런 다음 고유한 작업 후에 전달 목록을 인쇄합니다.

위의 접근 방식을 사용하여 정방향 목록에서 중복 요소를 제거할 수 있습니다.

예시

// C++ code to demonstrate the working of forward_list::unique( )
#include<iostream.h>
#include<forward_list.h>
Using namespace std;
// function for binary predicate
bool cmp(int a, int b){
   return (abs(a) == abs(b))
}
int main(){
   // initializing the forward list
   forward_list<int> List = { 2, 4, 6, 3, 5, 3, 4, 4, 9, 1, 6, 6, 2, 2, 9 }
   cout<< " Elements of List:";
   for( auto x = List.start(); x != List.end(); ++x )
      cout<< *x << " ";
   // defining of function that performs the Unique operation
   List.unique();
   cout<< “ Unique List :”;
   for(auto x = List.start(); x != List.end(); ++x)
      cout<< *x << " ";
   return 0;
}

출력

위의 코드를 실행하면 다음 출력이 생성됩니다.

OUTPUT – List : 2, 4, 6, 3, 5, 4, 4, 9, 1, 6, 6, 2, 2, 9
   Unique List : 1, 2, 3, 4, 5, 6, 9
OUTPUT – List : 15.2, 74.0, 3.14, 15.2, 69.5, 74.0, 3.14, 18.5, 3.99
   Unique List : 3.14, 3.99, 15.2, 18.5, 69.5, 74.0