C++程序用于在set STL中插入、删除和查找

set STL简介

STL(Standard Template Library)是一种基于模板库的程序设计方法。其中的set是STL提供的一种关联式容器,用于存储一组元素,同时能够在O(log n)的时间复杂度内进行插入、删除和查找操作。set容器中不允许出现重复元素,且默认以升序方式排序存储。

插入操作

在set中插入元素的方法是使用insert()函数。该函数会把待插入元素按照规定的顺序插入到set中。

代码实现如下:

#include<set>

set<int> mySet;

mySet.insert(1);

mySet.insert(3);

mySet.insert(2);

上述代码将1、3、2插入到set中,并按升序排序。插入操作的时间复杂度为O(log n)。

删除操作

删除单个元素

在set中删除单个元素的方法是使用erase()函数,该函数接受一个迭代器参数,表示要删除元素的位置。

代码实现如下:

set<int> mySet;

mySet.insert(1);

mySet.insert(3);

mySet.insert(2);

set<int> :: iterator it = mySet.find(3); //查找元素3的位置

if(it != mySet.end())

mySet.erase(it); //删除元素3

上述代码的时间复杂度也是O(log n)。

删除一段元素

在set中删除一段元素也很简单,只需指定要删除的元素区间即可,使用erase()函数。

代码实现如下:

set<int> mySet;

mySet.insert(1);

mySet.insert(2);

mySet.insert(3);

mySet.insert(4);

mySet.insert(5);

mySet.erase(mySet.find(2), mySet.find(5)); //删除元素2到元素5(不包括元素5)

上述代码将删除元素2、3、4,时间复杂度为O(log n)。

查找操作

在set中查找元素也很简单,只需使用find()函数即可。如果查询到该元素则返回该元素的迭代器,否则返回end()迭代器。

代码实现如下:

set<int> mySet;

mySet.insert(1);

mySet.insert(2);

mySet.insert(3);

mySet.insert(4);

mySet.insert(5);

set<int> :: iterator it = mySet.find(3); //查找元素3的位置

if(it != mySet.end())

cout << "元素3的位置是:" << *it << endl;

else

cout << "未找到元素3!" << endl;

上述代码查找到元素3,并输出结果“元素3的位置是:3”。find()函数的时间复杂度为O(log n)。

总结

set是STL提供的一种关联式容器,用于存储一组元素,同时能够在O(log n)的时间复杂度内进行插入、删除和查找操作。set容器中不允许出现重复元素,且默认以升序方式排序存储。插入、删除和查找操作都很方便,只需要调用相应的函数即可,时间复杂度都是O(log n)。

免责声明:本文来自互联网,本站所有信息(包括但不限于文字、视频、音频、数据及图表),不保证该信息的准确性、真实性、完整性、有效性、及时性、原创性等,版权归属于原作者,如无意侵犯媒体或个人知识产权,请来电或致函告之,本站将在第一时间处理。猿码集站发布此文目的在于促进信息交流,此文观点与本站立场无关,不承担任何责任。

后端开发标签