行业知识
【C++】<知识点> 标准模板库STL(下)
2026-10-27 13:04:00
来源:互联网转载
文章目录
六、set与multiset
1. 常用成员函数
2. pair模板
3. set
4. multiset
七、map与multimap
1. map
2. multimap
3. 应用实例
八、容器适配器
1. stack
2. queue
3. priority_queue
九、算法
六、set与multiset
1. 常用成员函数
| iterator find(const T& val) | 查找值为val的元素,返回其迭代器。若未找到,则返回end() |
| iterator insert(const T& val) | 将val插入容器并返回其迭代器。若set类型对象调用insert,返回值类型为pair |
| void insert(iterator first, iterator last) | 将区间[first, last)插入容器 |
| int count(const T& val) | 统计容器内有多少个和val相同的元素 |
| iterator lower_bound(const T& val) | 查找最大位置的it,使得[begin, it)中所有元素都比val小 |
| iterator upper_bound(const T& val) | 查找最小位置的it,使得[it, end)中所有元素都比val大 |
| pair equal_range(const T& val) | 同时求lower_bound和upper_bound |
| iterator erase(iterator it) | 删除it指向的元素,返回其后面元素的迭代器(之后不要再用该迭代器++)。另外,erase函数也有重载,可以删除指定元素,还可以删除指定区间。 |
2. pair模板
/* pair模板内容 */template struct pair{ typedef _T1 first_type; typedef _T2 second_type; _T1 first; _T2 second; pair() : first(), second() {} pair(const _T1& _a, const _T1& _b) : first(_a), second(_b) {} template pair(const pair& _p) : first(_p.first), second(_p.second) {}}/* 第三个构造函数示例:*/pair p(pair(5.5, 4.6));//则p.first = 5, p.second = 4/* map/multimap容器里放着的都是pair模板类的对象,并按照first从小到大排序 */ 3. set
(1) set类模板:
template class set{...}//less模板,通过