C和C ++中集合和映射值的下界索引
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C和C ++中集合和映射值的下界索引相关的知识,希望对你有一定的参考价值。
假设我想获取集合中某个值的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;
以上是关于C和C ++中集合和映射值的下界索引的主要内容,如果未能解决你的问题,请参考以下文章