在 C++ 中使用一个映射中的值作为另一个映射中的键
Using value from one map as key in another map in C++
我有 unordered_map 个酒店的 AvailableRooms 和房间数。喜欢
Sheridan -> 10
Marriot ->12
我有一个地图 hotelOnDate,它存储字符串日期转换为针对酒店的 unix 时间。
142356789 -> Sheridan
142356749 -> Marriot
现在,当我尝试使用地图键访问酒店 unordered_map 值时,我得到一个 0。
for(auto it = hotelOnDate.begin(); it != hotelOnDate.end(); it++){
std::cout<<AvailableRooms[it->second]<<std::endl;
}
AvailableRooms["Sheridan"] 虽然给出了正确的输出 10。
我在这里做错了什么?
我在我的代码中尝试了同样的事情,似乎对我有用。
#include <iostream>
#include <string>
#include <unordered_map>
#include <map>
int main ()
{
std::map<std::string,std::string> mymap = {
{ "Mars", "g"},
{ "Saturn", "h"},
{ "Jupiter", "i" } };
std::unordered_map<std::string,std::string> imap = {{"g","1"},{"h","2"}};
for (auto it = mymap.begin(); it != mymap.end(); it++) {
std::cout << it->first << ": " <<imap[ it->second ] << std::endl;
}
}
return 0;
}
我有 unordered_map 个酒店的 AvailableRooms 和房间数。喜欢
Sheridan -> 10
Marriot ->12
我有一个地图 hotelOnDate,它存储字符串日期转换为针对酒店的 unix 时间。
142356789 -> Sheridan
142356749 -> Marriot
现在,当我尝试使用地图键访问酒店 unordered_map 值时,我得到一个 0。
for(auto it = hotelOnDate.begin(); it != hotelOnDate.end(); it++){
std::cout<<AvailableRooms[it->second]<<std::endl;
}
AvailableRooms["Sheridan"] 虽然给出了正确的输出 10。 我在这里做错了什么?
我在我的代码中尝试了同样的事情,似乎对我有用。
#include <iostream>
#include <string>
#include <unordered_map>
#include <map>
int main ()
{
std::map<std::string,std::string> mymap = {
{ "Mars", "g"},
{ "Saturn", "h"},
{ "Jupiter", "i" } };
std::unordered_map<std::string,std::string> imap = {{"g","1"},{"h","2"}};
for (auto it = mymap.begin(); it != mymap.end(); it++) {
std::cout << it->first << ": " <<imap[ it->second ] << std::endl;
}
}
return 0;
}