set中常用的方法
begin() ,返回set容器的第一个元素
end() ,返回set容器的最后一个元素
clear() ,删除set容器中的所有的元素
empty() ,判断set容器是否为空
max_size() ,返回set容器可能包含的元素最大个数
size() ,返回当前set容器中的元素个数
rbegin ,返回的值和end()相同
rend() ,返回的值和rbegin()相同
查找键 key 的元素个数:st.count(key);
- 删除容器中值为 elem 的元素:
st.pop_back(const T& elem);
- 删除it迭代器所指的元素:
st.erase(iterator it);
- 删除区间 [first,last] 之间的所有元素:
st.erase(iterator first, iterator last);
- 清空所有元素:
st.clear();
- 开始迭代器指针:
st.begin();
- 末尾迭代器指针:
st.end();
// 指向最后一个元素的下一个位置 - 指向常量的开始迭代器指针:
st.cbegin();
// 意思就是不能通过这个指针来修改所指的内容,但还是可以通过其他方式修改的,而且指针也是可以移动的。 - 指向常量的末尾迭代器指针:
lst.cend();
- 反向迭代器指针,指向最后一个元素:
st.rbegin();
- 反向迭代器指针,指向第一个元素的前一个元素:
st.rend();
- 返回最后一个 key<=keyElem 元素的迭代器:
st.lower_bound(keyElem);
- 返回第一个 key>keyElem 元素的迭代器:
st.upper_bound(keyElem);
- 返回容器中 key 与 keyElem 相等的上下限的两个迭代器,这两个迭代器被放在对组(pair)中:
st.equal_range(keyElem);
set 与序列式容器的用法有以下几处不同:
-
set 不支持 resize() 函数;
-
set 容器不提供下标操作符。为了通过键从 set 中获取元素,可使用 find 运算;
-
set 只能使用insert的两种重载函数插入,不支持 push_back() 和 push_front() 函数;
-
set 不支持 STL 里的 reverse 和 sort 算法;
-
set 能不通过迭代器,只通过元素值来删除该元素;
-
set 只支持默认构造函数和拷贝构造函数,没有其它重载的构造函数。