C++ STL set删除数据:erase()和clear()方法
如果想删除 set 容器存储的元素,可以选择用 erase() 或者 clear() 成员方法。
set 类模板中,erase() 方法有 3 种语法格式,分别如下:
如果需要删除 set 容器中存储的所有元素,可以使用 clear() 成员方法。该方法的语法格式如下:
举个例子:
set 类模板中,erase() 方法有 3 种语法格式,分别如下:
//删除 set 容器中值为 val 的元素
size_type erase (const value_type& val);
//删除 position 迭代器指向的元素
iterator erase (const_iterator position);
//删除 [first,last) 区间内的所有元素
iterator erase (const_iterator first, const_iterator last);
下面程序演示了以上 3 种 erase() 方法的用法:注意,如果要删除的元素就是 set 容器最后一个元素,则 erase() 方法返回的迭代器就指向新 set 容器中最后一个元素之后的位置(等价于 end() 方法返回的迭代器)。
#include <iostream> #include <set> #include <string> using namespace std; int main() { //创建并初始化 set 容器 std::set<int>myset{1,2,3,4,5}; cout << "myset size = " << myset.size() << endl; //1) 调用第一种格式的 erase() 方法 int num = myset.erase(2); //删除元素 2,myset={1,3,4,5} cout << "1、myset size = " << myset.size() << endl; cout << "num = " << num << endl; //2) 调用第二种格式的 erase() 方法 set<int>::iterator iter = myset.erase(myset.begin()); //删除元素 1,myset={3,4,5} cout << "2、myset size = " << myset.size() << endl; cout << "iter->" << *iter << endl; //3) 调用第三种格式的 erase() 方法 set<int>::iterator iter2 = myset.erase(myset.begin(), --myset.end());//删除元素 3,4,myset={5} cout << "3、myset size = " << myset.size() << endl; cout << "iter2->" << *iter2 << endl; return 0; }程序执行结果为:
myset size = 5
1、myset size = 4
num = 1
2、myset size = 3
iter->3
3、myset size = 1
iter2->5
如果需要删除 set 容器中存储的所有元素,可以使用 clear() 成员方法。该方法的语法格式如下:
void clear();
显然,该方法不需要传入任何参数,也没有任何返回值。举个例子:
#include <iostream> #include <set> #include <string> using namespace std; int main() { //创建并初始化 set 容器 std::set<int>myset{1,2,3,4,5}; cout << "1、myset size = " << myset.size() << endl; //清空 myset 容器 myset.clear(); cout << "2、myset size = " << myset.size() << endl; return 0; }程序执行结果为:
1、myset size = 5
2、myset size = 0
所有教程
- C语言入门
- C语言编译器
- C语言项目案例
- 数据结构
- C++
- STL
- C++11
- socket
- GCC
- GDB
- Makefile
- OpenCV
- Qt教程
- Unity 3D
- UE4
- 游戏引擎
- Python
- Python并发编程
- TensorFlow
- Django
- NumPy
- Linux
- Shell
- Java教程
- 设计模式
- Java Swing
- Servlet
- JSP教程
- Struts2
- Maven
- Spring
- Spring MVC
- Spring Boot
- Spring Cloud
- Hibernate
- Mybatis
- MySQL教程
- MySQL函数
- NoSQL
- Redis
- MongoDB
- HBase
- Go语言
- C#
- MATLAB
- JavaScript
- Bootstrap
- HTML
- CSS教程
- PHP
- 汇编语言
- TCP/IP
- vi命令
- Android教程
- 区块链
- Docker
- 大数据
- 云计算