我想要某种容器,它给出了整数和字符串之间的双向映射。
我给它一个int,它给了我与之相关的字符串。
我给它字符串,它给了我与之相关的int。
你会如何实现这样的事情?
答案 0 :(得分:0)
您需要2张地图,当您添加/删除这些地图时,请确保它们是同步的。我不知道如何只用一个容器来做这件事。
答案 1 :(得分:0)
我会用两张地图创建一个类:
class BiMap {
void insert( string const & s, int i ) {
stringToInt[ s ] = i;
intToString[ i ] = s;
}
int find( string const & s ) const {
// use stringToInt[ s ];
}
string find( int const & i ) const {
// use intToString[ i ];
}
map< string, int > stringToInt;
map< int, string > intToString;
};