在C++ STL中移除()函数列表
在本文中我们将讨论C++中的remove()函数的原理、语法和示例。
什么是STL中的列表
列表是一种数据结构,允许在序列的任何位置进行恒定时间的插入和删除。列表实现为双向链表。列表允许非连续内存分配。列表的插入提取和在容器中任何位置移动元素的性能优于数组、向量和双端队列。在列表中,对元素的直接访问很慢,列表类似于forward_list,但是forward list对象是单链表,它们只能向前迭代。
什么是remove()
remove()是C++ STL中的一个内建函数,在头文件中声明。remove()用于从列表容器中删除任何特定值/元素。它使用作为参数传递的值,并从列表容器中删除所有具有该值的所有元素。如果被移除元素的大小大于列表容器的大小,则该函数将调用析构函数。
语法
list_name.remove(const value_type& value);
此函数接受一个值,该值需要从列表容器中搜索并被删除。
返回值
此函数不返回任何内容,只是从容器中移除元素。
示例
/* In the code below we are inserting elements to the list and then we will try to remove the elements from the list using their values. */ #include <bits/stdc++.h> using namespace std; int main(){ //create a list list<int> myList; //insert elements to the List myList.push_back(1); myList.push_back(1); myList.push_back(3); myList.push_back(2); myList.push_back(5); //my list before removing elements cout<<"List before removing elements: "; for (auto i = myList.begin(); i!=myList.end(); i++){ cout << *i << " "; } //deleting 1 2 and 3 from the list myList.remove(1); myList.remove(2); myList.remove(3); // List after removing elements cout << "\nList after removing elements: "; for (auto i = myList.begin(); i!= myList.end(); i++){ cout << *i << " "; } return 0; }
输出
如果我们运行上面的代码,它会生成下列输出
List before removing elements: 1 1 3 2 5 List after removing elements: 5
广告