1

我正在做一个关于 C++ 的项目,并且我是该语言的新手。

我正在使用一个函数,它必须执行从 0x00 到 0xFF 的十六进制数字,并且有人告诉我我可以用地图来做到这一点。

问题是,到目前为止,在我看到的示例中,我只看到它仅用于一个条目,而我需要根据特定范围做一些事情。

有没有办法在地图中做到这一点,或者我需要使用其他东西来完成所需的功能?

4

1 回答 1

1

如果理解正确,您将一些值存储在映射中,键是从 0x00 到 0xFF 的值?可能的解决方案可能是:

typedef std::map<unsigned char, int> values;
void print( values::const_iterator begin, values::const_iterator end );

values v;
// print range [0x01,0x20]
print( v.lower_bound( 0x01 ), v.upper_bound( 0x20 ) );
// print range [0x10,0x40[
print( v.lower_bound( 0x10 ), v.lower_bound( 0x40 ) );
// print range ]0x20,0x50[
print( v.upper_bound( 0x20 ), v.lower_bound( 0x50 ) );

那是你需要的吗?

于 2013-02-23T21:18:04.600 回答