Computer >> Máy Tính >  >> Lập trình >> C ++

danh sách unique () trong C ++ STL

Given là nhiệm vụ để hiển thị danh sách chức năng hàm unique () trong C ++ trong STL.

Danh sách trong STL là gì

Danh sách là các vùng chứa cho phép chèn và xóa theo thời gian liên tục ở bất kỳ đâu theo trình tự. Danh sách được triển khai dưới dạng danh sách được liên kết kép. Danh sách cho phép cấp phát bộ nhớ không liền kề. Danh sách thực hiện trích xuất chèn và di chuyển phần tử ở bất kỳ vị trí nào trong vùng chứa tốt hơn so với mảng, vectơ và deque. Trong Danh sách, truy cập trực tiếp vào phần tử chậm và danh sách tương tự như forward_list, nhưng các đối tượng danh sách chuyển tiếp là danh sách được liên kết đơn và chúng chỉ có thể được lặp lại về phía trước.

Cái gì là duy nhất ()

Danh sách unique () được sử dụng để xóa tất cả các phần tử trùng lặp trong danh sách.

Cú pháp

list_name.unique(binarypredicate name)

Cú pháp cho vị từ nhị phân

Tên bool (data_type a, data_type b)

Tham số

Hàm này chấp nhận một tham số duy nhất là một vị từ nhị phân trả về true nếu các phần tử phải được coi là bằng nhau.

Ví dụ

Đầu vào Danh sách - 2 2 6 7 9 9 9 10 5 5

Đầu ra Danh sách mới - 2 5 6 7 9 10

Đầu vào Danh sách - 3,14 5,56 7,62 9,00 0,45 7,62 9,00 7,62 0,45 3,00

Đầu ra Danh sách mới - 0,45 3,00 3,14 5,56 7,62 9,00

Có thể tuân theo phương pháp tiếp cận

  • Đầu tiên, chúng ta tạo hàm vị từ nhị phân.

  • Sau đó, chúng tôi khởi tạo danh sách.

  • Sau đó, chúng tôi xác định hàm duy nhất ().

  • Sau đó, chúng tôi in danh sách sau khi thao tác duy nhất.

Bằng cách sử dụng phương pháp trên, chúng tôi có thể xóa phần tử trùng lặp khỏi danh sách.

Ví dụ

/ / C++ code to demonstrate the working of list unique( ) function in STL
#include <iostream.h>
#include<list.h>
Using namespace std;
/ / function for binary predicate
Bool cmp(int a, int b){
   Return (abs(a) == abs(b))
}
int main ( ){
   List<int> list = { 13, 14, 13, 19, 20, 19, 15, 19, 20, 15, 15 };
   / / print the list
   cout<< “ Elements in List: “;
   for( auto x = List.begin( ); x != List.end( ); ++x)
      cout<< *x << “ “;
   / / declaring unique( ) function
   list.unique(cmp);
   / / printing new list after unique operation
   cout<< “List after unique operation: “;
   for( x=list.begin( ); x != list.end( ); ++x)
      cout<< “ “<<*x;
   return 0;
}

Đầu ra

Nếu chúng ta chạy đoạn mã trên thì nó sẽ tạo ra kết quả sau

Input - Element in List : 13 14 13 19 20 19 15 19 20 15
Output - List after unique operation : 13 14 15 19 20

Ví dụ

/ / C++ code to demonstrate the working of list unique( ) function in STL
#include<iostream.h>
#include<list.h>
Using namespace std;
/ / function for binary predicate
Bool cmp(float a, float b){
   Return (abs(a) == abs(b))
}
int main ( ){
   List <float>t; list = { 3.14, 5.56, 7.62, 9.00, 0.45, 7.62, 9.00, 7.62, 0.45, 3.00 };
   / / print the list
   cout<< “ Elements in List: “;
   for( auto x = List.begin( ); x != List.end( ); ++x)
      cout<< *x << “ “;
   / / declaring unique( ) function
   list.unique(cmp);
   / / printing new list after unique operation
   cout<< “List after unique operation: ”;
   for( x=list.begin( ); x != list.end( ); ++x)
      cout<< “ “<<*x;
   return 0;
}

Đầu ra

Nếu chúng ta chạy đoạn mã trên thì nó sẽ tạo ra kết quả sau

Input - Element in List: 3.14 5.56 7.62 9.00 0.45 7.62 9.00 7.62 0.45 3.00
Output - List after unique operation: 0.45 3.00 3.14 5.56 7.62 9.00