范围的C ++映射

时间:2013-02-23 20:18:41

标签: c++ map hex range

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

我正在使用一个函数,它必须执行从十六进制数0x00到0xFF的操作,并且我被告知我可以使用地图执行此操作。

问题是,到目前为止,在我看到的示例中,我刚刚看到它只用于一个条目,而我需要根据具体范围来完成。

有没有办法可以在地图中执行此操作,还是需要使用其他功能来执行所需的功能?

1 个答案:

答案 0 :(得分: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 ) );

这就是你需要的吗?