gpt4 book ai didi

c++ - 在多映射中用作键的浮点值

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:16:34 25 4
gpt4 key购买 nike

如果比较 float ,我认为不能只使用等于==,需要检查是否abs(a-b) < epsilon。那么当使用float类型的v​​alue作为key时,是否可以使用equal_range函数呢?

例如:

std::multimap<float, string>  ds;
ds.insert(make_pair(2.0, string("a")));
ds.insert(make_pair(2.0, string("b")));
ds.insert(make_pair(3.0, string("d")));
ds.equal_range(2.0)

最佳答案

std::multimap::equal_range实际上不是使用 operator== 计算的根本。它是使用 < 计算的和 >只要。它实际上是两个迭代器,第一个是 std::multimap::lower_bound (第一个元素 不小于 给定的键),第二个元素是 std::multimap::upper_bound (第一个元素大于给定键)。

所以使用floatsdoubles 是相当安全的。

关于c++ - 在多映射中用作键的浮点值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31956717/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com