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 ++中集合和映射值的下界索引的主要内容,如果未能解决你的问题,请参考以下文章

python中集合和字典的区别

关于C++集合操作赋值和集合间操作的结果集合的疑问

关于C++集合操作赋值和集合间操作的结果集合的疑问

python中集合set,字典dict和列表list的区别以及用法

JAVA 中集合和组合是一个意思么?

C#中集合和数组的区别