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

list_remove () và list remove_if () trong C ++ STL

Given là nhiệm vụ hiển thị danh sách chức năng remove () và danh sách chức năng remove_if () 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ự. Listare đượ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ề. List hoạt động tốt hơn việc 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 so với mảng, vectơ và deque. Trong Danh sách, việc truy cập trực tiếp vào phần tử chậm và danh sách tương tự như tontic_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 đi lặp lại.

remove () là gì?

Hàm này được sử dụng để xóa giá trị đã cho được truyền trong tham số cho hàm.

Cú pháp

listname.remove(val);

Tham số

val - Nó xác định giá trị cần loại bỏ.

Ví dụ

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

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

  • Đầu tiên, chúng tôi khai báo Danh sách.

  • Sau đó, chúng tôi in Danh sách.

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

Bằng cách sử dụng phương pháp trên, chúng tôi có thể xóa phần tử đã cho.

Ví dụ

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

Đầ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 - 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

Hàm remove_if () là gì?

Hàm này được sử dụng để loại bỏ các giá trị trả về true cho vị từ hoặc trả về true cho điều kiện được truyền dưới dạng tham số.

Cú pháp

listname.remove_if(predicate)

Tham số

vị ngữ - Nó định nghĩa một điều kiện được truyền dưới dạng tham số.

Ví dụ

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.

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

  • Đầu tiên chúng ta khai báo hàm vị từ.

  • Sau đó, chúng tôi khai báo danh sách.

  • Sau đó, chúng tôi in danh sách.

  • thì chúng ta khai báo hàm remove_if ().

Bằng cách sử dụng phương pháp trên, chúng ta có thể loại bỏ phần tử trong bất kỳ điều kiện nhất định nào. Khi khai báo hàm remove_if (), chúng ta chuyển vị ngữ làm tham số.

Ví dụ

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

Đầ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 – List: 2 3 4 15 9 7 21 24 13
Output – New List: 2 4 7 13