C++ STL set/multiset容器
set/multiset容器
简介#
Set的特性是,所有元素都会根据元素的值自动被排序。Set不允许两个元素有相同的值。
Set的迭代器iterator
是一种const_iterator
,不能通过迭代器改变任意set元素的值。
multiset的特性和用法和set相同,唯一的差别在于它允许值重复。
set和multiset的底层实现是红黑树,红黑树是平衡二叉搜索树的一种。
set/multiset容器常用操作#
构造函数#
set<T> st;//set默认构造函数: mulitset<T> mst; //multiset默认构造函数: set(const set &st);//拷贝构造函数
set赋值#
set& operator=(const set &st);//重载等号操作符 swap(st);//交换两个集合容器
set大小操作#
size();//返回容器中元素的数目 empty();//判断容器是否为空
插入和删除操作#
insert(elem);//在容器中插入元素。 clear();//清除所有元素 erase(pos);//删除pos迭代器所指的元素,返回下一个元素的迭代器。 erase(beg, end);//删除区间[beg,end)的所有元素 ,返回下一个元素的迭代器。 erase(elem);//删除容器中值为elem的元素。
查找操作#
find(key);//查找键key是否存在,若存在,返回该键的元素的迭代器;若不存在,返回set.end(); count(key);//查找键key的元素个数 lower_bound(keyElem);//返回第一个key>=keyElem元素的迭代器。 upper_bound(keyElem);//返回第一个key>keyElem元素的迭代器。 equal_range(keyElem);//返回容器中key与keyElem相等的上下限的两个迭代器。
对组#
对组(pair)将一对值组合成一个值,这一对值可以具有不同的数据类型,两个值可以分别用pair
的两个公有属性first
和second
访问。
类模板:`template <class T1, class T2> struct pair.
创建队组#
//第一种方法创建一个对组 pair<string, int> pair1(string("name"), 20); cout << pair1.first << endl; //访问pair第一个值 cout << pair1.second << endl;//访问pair第二个值 //第二种 pair<string, int> pair2 = make_pair("name", 30); cout << pair2.first << endl; cout << pair2.second << endl; //pair=赋值 pair<string, int> pair3 = pair2; cout << pair3.first << endl; cout << pair3.second << endl;
分类:
C++ / C++ STL标准模板库
, C++
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示
2022-09-06 约束