标签:使用 关联容器 return ace 之间 bin upper rms strong
class Lsb_less {
public:
bool operator()(int x, int y) {
return (x%10)<(y%10);
}
};
set<int, Lsb_less> s = {21, 23, 26, 27}; //自定义比较方法
set<int, Lsb_less>::iterator itr1, itr2;
itr1 = find(s.begin(), s.end(), 36); // 指向s.end()
itr2 = s.find(36); // 指向26
set<int, Lsb_less> s = {21, 23, 26, 27};
/*
* 算法find()寻找相等性: if (x == y)
*/
itr1 = find(s.begin(), s.end(), 36); // itr1指向s.end()
/*
* set<int>::find()寻找等效性: if ( !(x<y) && !(y<x) )
*/
itr2 = s.find(36); // itr2 points to 26
如果函数使用 == 运算符或类似函数,它检查相等性。通常不要求数据已排序。
相等性的算法:
search
find_end
find_first_of
adjacent_search
等效性的算法:
binary_search // simple forms
includes
lower_bound
upper_bound
当使用某个函数搜索或者删除元素时,确保你理解了相等性和等效性之间的区别。
STL进阶--相等 vs 等价 (Equality vs Equivalence)
标签:使用 关联容器 return ace 之间 bin upper rms strong
原文地址:https://www.cnblogs.com/logchen/p/10205429.html