Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

รายการไม่ซ้ำกัน ( ) ใน C ++ STL


กำหนดให้เป็นหน้าที่แสดงรายการฟังก์ชันการทำงานเฉพาะ ( ) ฟังก์ชันใน C++ ใน STL

รายการใน STL คืออะไร

รายการคือคอนเทนเนอร์ที่อนุญาตให้แทรกและลบเวลาคงที่ที่ใดก็ได้ตามลำดับ รายการถูกนำไปใช้เป็นรายการที่เชื่อมโยงเป็นสองเท่า รายการอนุญาตการจัดสรรหน่วยความจำที่ไม่ต่อเนื่องกัน List ทำการดึงการแทรกและย้ายองค์ประกอบได้ดีกว่าในตำแหน่งใดๆ ในคอนเทนเนอร์ มากกว่าอาร์เรย์ เวกเตอร์ และ deque ใน List การเข้าถึงองค์ประกอบโดยตรงนั้นช้าและ list นั้นคล้ายกับ forward_list แต่ออบเจกต์ของรายการส่งต่อเป็นรายการที่เชื่อมโยงเพียงรายการเดียว และสามารถทำซ้ำได้เพียงส่งต่อเท่านั้น

เอกลักษณ์( )

รายการ unique( ) ใช้เพื่อลบองค์ประกอบที่ซ้ำกันทั้งหมดในรายการ

ไวยากรณ์

list_name.unique(binarypredicate name)

ไวยากรณ์สำหรับเพรดิเคตไบนารี

ชื่อบูล (data_type a, data_type b)

พารามิเตอร์

ฟังก์ชันนี้ยอมรับพารามิเตอร์ตัวเดียวซึ่งเป็นเพรดิเคตไบนารีที่คืนค่า จริง หากองค์ประกอบควรได้รับการปฏิบัติอย่างเท่าเทียมกัน

ตัวอย่าง

ป้อนข้อมูล รายการ − 2 2 6 7 9 9 9 10 5 5

ผลผลิต รายการใหม่ − 2 5 6 7 9 10

ป้อนข้อมูล รายการ - 3.14 5.56 7.62 9.00 0.45 7.62 9.00 7.62 0.45 3.00

ผลผลิต รายการใหม่ - 0.45 3.00 3.14 5.56 7.62 9.00

แนวทางสามารถติดตามได้

  • ขั้นแรก เราสร้างฟังก์ชันเพรดิเคตไบนารี

  • จากนั้นเราก็เริ่มต้นรายการ

  • จากนั้นเราจะกำหนดฟังก์ชัน unique( )

  • จากนั้นเราจะพิมพ์รายการหลังจากดำเนินการเฉพาะ

โดยใช้วิธีการข้างต้น เราสามารถลบองค์ประกอบที่ซ้ำกันออกจากรายการได้

ตัวอย่าง

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

ผลลัพธ์

หากเรารันโค้ดด้านบน มันจะสร้างผลลัพธ์ต่อไปนี้

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

ตัวอย่าง

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

ผลลัพธ์

หากเรารันโค้ดด้านบน มันจะสร้างผลลัพธ์ต่อไปนี้

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