【发布时间】:2016-04-24 10:05:24
【问题描述】:
我有一张看起来像的地图
map<string , map<int,int>>
字符串包含学生的姓名,嵌套映射包含 ID 作为键和年龄作为值。当我打印地图时,它会按应有的方式打印值。
但是,我想找一个 ID 低于特定 ID 的学生。我尝试使用 lower_bound 使用:
for( auto &x : class ){
auto it = x.second.upper_bound(some_number);
for( ; it != x .second.begin() ; --it){
cout << x.first << " = " << << it -> first << " " <<it -> second << endl;
}
}
这确实打印了学生的正确姓名,但他们的 ID 和年龄只是零或随机数,是什么导致了这种行为?打印出来就可以了。
我试图在 cpp 地图参考上找到有关此内容的信息,但一无所获。
【问题讨论】:
-
这是一个奇怪的数据结构。一个学生,由他或她的名字识别,可以有多个 ID 和年龄?
-
您是如何设法声明名为
class的地图的?
标签: c++ dictionary