首页 > 解决方案 > 如何使用 std::upper_bound() 获取元素的索引?

问题描述

上一篇文章std::upper_bound()中,讨论了and的使用std::lower_bound()。但是,问题集中在获取元素element上,在这篇文章中,我的重点是获取index元素的元素。我遇到的具体问题如下。我有一个随机变量的累积分布(比如说衬衫颜色)。

我将在 [0, 1.0] 之间均匀生成一个随机数,然后需要将其映射回累积概率。例如,如果随机数在 [0, 0.5) 中,则为“白色”,如果随机数在 [0.5, 0.6) 中,则为“黑色”,依此类推。

我可能会将我的概率存储在 中,std::vector<double>但会返回一个迭代器来访问元素,而不是索引。这很好,但是我可能需要 a将 double 映射回字符串值。std::upper_bound()std::lower_bound()std::map<double, std::string>

在我想要实现的上下文中,有没有办法像 Python 的bisect方法一样获取元素的索引?

标签: c++

解决方案


推荐阅读