假设我想获取集合中某个值的lower_bound的索引,并且如果我键入
cout<<set.lower_bound(number)-set.begin()<<endl;
显示错误:“ operator-”不匹配
地图也一样,
但是,如果使用数组和向量,则为>]
lower_bound(begin,end,val)-begin
显示索引
为什么?
假设我想获取集合中某个值的lower_bound的索引,并且如果我键入cout << []
-
的迭代器定义运算符std::set
,而为数组迭代器定义了运算符std::distance()
。>>相反,您可以使用std::distance()
,如下所示
int main()
{
std::set<int> set {1, 2, 4, 5, 6};
int number = 3;
std::cout<<std::distance(set.begin(), set.lower_bound(number))<<std::endl;
}