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

forward_list::unique( ) ใน C++ STL


กำหนดให้เป็นหน้าที่แสดงการทำงานของฟังก์ชัน forward_list::unique( ) ใน C++

รายการส่งต่อคือคอนเทนเนอร์ลำดับที่อนุญาตให้ดำเนินการแทรกและลบเวลาคงที่ที่ใดก็ได้ภายในลำดับ รายการส่งต่อถูกนำไปใช้เป็นรายการที่เชื่อมโยงแบบเดี่ยว การจัดลำดับจะถูกเก็บไว้โดยการเชื่อมโยงไปยังแต่ละองค์ประกอบของลิงก์ไปยังองค์ประกอบถัดไปในลำดับ

forward_list::unique( ) เป็นฟังก์ชันในฟังก์ชันไลบรารีมาตรฐาน c++ ซึ่งใช้เพื่อลบองค์ประกอบที่ซ้ำกันทั้งหมดออกจากรายการส่งต่อ โปรดสังเกตว่าองค์ประกอบจะถูกลบออกจากคอนเทนเนอร์ forward_list เท่านั้นหากเปรียบเทียบเท่ากับองค์ประกอบทันที ดังนั้น ฟังก์ชันนี้จึงมีประโยชน์อย่างยิ่งสำหรับรายการที่จัดเรียง

ไวยากรณ์

Forwardlist_name.unique(binarypredicate name)

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

ชื่อบูล (ชนิดข้อมูล a, ชนิดข้อมูล b)

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

ตัวอย่าง

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