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

list_remove( ) และรายการ remove_if( ) ใน C++ STL


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

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

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

remove( ) คืออะไร

ฟังก์ชันนี้ใช้เพื่อลบค่าที่กำหนดที่ส่งผ่านในพารามิเตอร์ไปยังฟังก์ชัน

ไวยากรณ์

listname.remove(val);

พารามิเตอร์

วาล − กำหนดค่าที่จะลบออก

ตัวอย่าง

Input List: 1 2 3 3 4 5
Output New List: 1 2 4 5
In this List element 3 is removed.

Input List: 5 6 7 8 8 8 9
Output New List: 5 7 8 8 8 9
In this list element 6 in removed

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

  • อันดับแรก เราประกาศรายชื่อ

  • จากนั้นเราก็พิมพ์รายการ

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

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

ตัวอย่าง

// C++ code to demonstrate the working of list remove( ) function in STL
#include<iostream.h>
#include<list.h>
Using namespace std;
int main ( ){
   List<int> list = { 21, 24, 28, 26, 27, 25 };
   // print the list
   cout<< " list: ";
   for( auto x = list.begin( ); x != list.end( ); ++x)
      cout<< *x << " ";
   // defining remove( ) function
   list.remove(27);
   cout<< " New List:”;
   for( x = list.begin( ); x != list.end( ); ++x)
      cout<<' " " << *x;
   return 0;
}

ผลลัพธ์

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

Input - List: 21 24 28 26 27 25
Output - New List: 21 24 28 26 25
Input – List: 45 46 47 48 49 50
Output – New List: 45 46 48 49 50

ฟังก์ชัน remove_if( ) คืออะไร

ฟังก์ชันนี้ใช้เพื่อลบค่าที่คืนค่าเป็นจริงเป็นเพรดิเคต หรือคืนค่าจริงสำหรับเงื่อนไขที่ส่งผ่านเป็นพารามิเตอร์

ไวยากรณ์

listname.remove_if(predicate)

พารามิเตอร์

ภาคแสดง − มันกำหนดเงื่อนไขจะถูกส่งผ่านเป็นพารามิเตอร์

ตัวอย่าง

Input – List: 5 6 7 8 9 10
Output – New List: 5 7 9
In this list we remove all the even elements.

Input – List:5 10 15 20 25 30
Output – New List: 5 15 25
In this List we remove all the elements which is divisible by 10.

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

  • ขั้นแรก เราประกาศฟังก์ชันเพรดิเคต

  • แล้วเราก็ประกาศรายชื่อ

  • จากนั้นเราพิมพ์รายการ

  • จากนั้นเราจะประกาศฟังก์ชัน remove_if( )

โดยใช้วิธีการข้างต้น เราสามารถลบองค์ประกอบในเงื่อนไขที่กำหนด ในขณะที่ประกาศฟังก์ชัน remove_if( ) เราส่งเพรดิเคตเป็นพารามิเตอร์

ตัวอย่าง

// C++ code to demonstrate the working of list remove_if( ) function in STL
#include<iostream.h>
#include<list.h>
Using namespace std;
Bool div3( const int& val){
   return( val % 3) == 0);
}
int main( ){
   List<int> list = { 2, 3, 4, 15, 9, 7, 21, 24, 13 };
   cout<< " List: ";
   for( auto x = list.begin( ); x != list.end( ); ++x)
      cout<< *x << " ";
   // declaring remove_if( ) function
   list.remove_if(div3);
   cout<< " New List:”;
   for( x= list.begin( ); x != end( ); ++x)
      cout<< " " << *x;
   return 0;
}

ผลลัพธ์

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

Input – List: 2 3 4 15 9 7 21 24 13
Output – New List: 2 4 7 13