给出的任务是显示STL中C ++中的功能列表remove()和list remove_if()函数。
列表是允许在任何地方按顺序进行恒定时间插入和删除的容器。列表被实现为双链表。列表允许不连续的内存分配。与数组,向量和双端队列相比,列表在容器中的任何位置执行元素的插入提取和移动效果更好。在列表中,对元素的直接访问很慢,并且列表与forward_list相似,但是转发列表对象是单个链接列表,并且只能迭代转发。
此函数用于删除参数中传递给函数的给定值。
listname.remove(val);
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
此函数用于删除返回谓词为true或对于作为参数传递的条件返回true的值。
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