gpt4 book ai didi

c++ - 通过远程键保存值的结构

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

我需要一个结构来保存基于具有范围的键的值。我的实现是 C++,因此任何 STL 或 Boost 都非常好。

我有范围键,它是 double 值,还有值

  • [0,2) -> 值 1
  • [2,5) -> 值 2
  • [5,10) -> 值 3
  • 等等

这样搜索 1.23 应该返回值 1,依此类推。

现在我正在使用一个包含所有三个部分的 vector ,key1/key2/value,自定义搜索,但感觉应该有一个更清晰的结构。

编辑:谢谢大家。鉴于这种情况下的范围应该是连续且不重叠的,使用 upper_bound 就可以正常工作。也感谢类 Range 解决方案,它们已归档以备将来引用。

最佳答案

class Range
{
public:
Range( double a, double b ):
a_(a), b_(b){}
bool operator < ( const Range& rhs ) const
{
return a_ < rhs.a_ && b_ < rhs.b_;
}
private:
double a_;
double b_;
};
int main()
{
typedef std::map<Range, double> Ranges;
Ranges r;

r[ Range(0, 2) ] = 1;
r[ Range(2, 5) ] = 2;
r[ Range(5, 10) ] = 3;

Ranges::const_iterator it1 = r.find( Range( 2, 2 ) );
std::cout << it1->second;

Ranges::const_iterator it2 = r.find( Range( 2, 3 ) );
std::cout << it2->second;

Ranges::const_iterator it3 = r.find( Range( 6, 6 ) );
std::cout << it3->second;

return 0;
}

关于c++ - 通过远程键保存值的结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/773414/

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