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

forward_list ::unique () trong C ++ STL

Given là nhiệm vụ hiển thị hoạt động của hàm forward_list ::unique () trong C ++.

Danh sách chuyển tiếp là các vùng chứa trình tự cho phép các thao tác chèn và xóa theo thời gian liên tục ở bất kỳ đâu trong chuỗi. Danh sách chuyển tiếp được triển khai dưới dạng danh sách được liên kết đơn lẻ. Thứ tự được giữ bởi liên kết đến từng phần tử của liên kết với phần tử tiếp theo trong chuỗi.

forward_list ::unique () là một hàm trong thư viện chuẩn c ++ hàm được sử dụng để loại bỏ tất cả các phần tử trùng lặp khỏi danh sách chuyển tiếp. Lưu ý rằng một phần tử chỉ bị xóa khỏi vùng chứa forward_list nếu nó so sánh bằng với phần tử đó ngay lập tức. Do đó, chức năng này đặc biệt hữu ích cho các danh sách được sắp xếp.

Cú pháp

Forwardlist_name.unique(binarypredicate name)

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

tên bool (kiểu dữ liệu a, kiểu dữ liệu b)

Thông 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ử được coi là bằng nhau.

Ví dụ

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

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 chuyển tiếp.

  • Sau đó, chúng tôi định nghĩa hàm duy nhất ().

  • Sau đó, chúng tôi in danh sách chuyển tiếp 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 chuyển tiếp.

Ví dụ

// 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;
}

Đầu ra

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

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