Ada*_*han 7 c++ stl set
我想从std::set.
std::set
我知道最好和直接的做法是使用set<T>::find(T val)方法检查它在集合中的存在,然后使用返回的set<T>::iterator. 但我希望使用按值擦除的速记方法。
set<T>::find(T val)
set<T>::iterator
尽管std::set确实通过重载函数提供了set<T>::erase(T val)按此处列出的值擦除的功能,但我无法找到如果该值不存在于集合中会发生什么。
set<T>::erase(T val)
正如人们直觉所期望的那样,如果参数值在集合中不存在,它是否什么都不做?是否保证它不会抛出任何错误/异常?
Who*_*aig 7
std::set遵守26.2.6 associative.reqmts的关联容器要求。
它返回实际擦除元素的数量,std::set必须为零或一,具体取决于存在。根据26.2.6.1 associative.reqmts.except,只有在搜索期间使用容器比较器(显然可以自定义)不抛出时,才保证不抛出。
InQ*_*ive 5
来自cplusplus
(1) void擦除(迭代器位置); (2) size_type擦除(const value_type&val); (3) void擦除(迭代器在前,迭代器在后);
(1) void擦除(迭代器位置);
(2) size_type擦除(const value_type&val);
(3) void擦除(迭代器在前,迭代器在后);
返回值
对于基于值的版本 (2),该函数返回已擦除元素的数量。
成员类型 size_type 是无符号整型
所以如果没有元素被删除它返回0。
归档时间:
5 年,11 月 前
查看次数:
2099 次
最近记录: