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 只支持默认构造函数和拷贝构造函数,没有其它重载的构造函数。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐