一、set/multiset
- 1、常用成员函数
- 2、案例
一、set/multiset
集合是按照
特定顺序
存储唯一
元素的class="superseo">容器;
- 一般使用红黑树来实现;
- 用于查询居多;
multiset
- 不能对元素进行修改;
- 一般对元素进行删除和插入 *** 作;
template < class T, // set::key_type/value_type
class Compare = less<T>, // set::key_compare/value_compare
class Alloc = allocator<T> // set::allocator_type
> class set;
1、常用成员函数
2、案例
begin()
:返回第一个元素;end()
:返回最后一个元素后面一个位置;rbegin()
:返回容器最后一个元素;rend()
:返回第一个元素前的一个位置;size()
:元素个数;max_size()
:最大元素个数;empty()
:判断是否为空;emplace()
:插入元素,能够自动构造对象;emplace_hint()
:根据位置插入;insert()
:删除指定值的元素;insert(pos, elem)
:在pos插入eleminsert(pos, n, elem)
:pos位置插入n个元素elem;erase(cmp)
:删除满足条件的元素;erase()
:删除一个或几个元素;swap()
:交换容器;clear()
:删除双端队列容器中的所有元素;key_comp()
:返回比较对象;value_comp()
:返回比较对象;find()
:获取元素的迭代器;count()
:查看是否具有特定值的元素;lower_bound()
:将迭代器返回到下限;upper_bound()
:将迭代器返回到上限;equal_range()
:获取相等元素的范围;
#include
#include
using namespace std;
set<int> s = {19, 22, 11};
int main() {
//cout << "max_size: " << s.max_size() << endl;
// ret: 4
//s.insert(100);
//cout << "size: " << s.size() << endl;
// ret: 5
//s.insert(s.begin(), 110);
//cout << "size: " << s.size() << endl;
// ret: 2
//s.erase(19);
//cout << "size: " << s.size() << endl;
// ret: 7 8
//set s2 = {7, 8};
//s.swap(s2);
//for(auto& i:s) {
// cout << i << " ";
//}
//s.clear();
//for(auto& i:s) {
// cout << i << " ";
//}
// ret: 110 19 22 11 100
//s.emplace(100);
//s.emplace_hint(s.begin(), 110);
//for(auto& i:s) {
// cout << i << " ";
//}
// ret: 1 对象的比较
//auto mycomp = s.key_comp();
//cout << mycomp(1,2) << endl;
// ret:19
//auto it = s.find(19);
//if(it != s.end())
// cout << *it << endl;
// ret:find!!!
//if(s.count(19)!=0)
// cout << "find!!!" << endl;
//else
// cout << "no!!!" << endl;
// ret:19
//auto it = s.lower_bound(19);
//cout << *it << endl;
// ret:22
//auto it = s.upper_bound(19);
//cout << *it << endl;
// ret:
//auto it = s.equal_range(19);
//cout << "lower_bound:" << *it.first << endl;
//cout << "upper_bound:" << *it.second << endl;
return 0;
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)