你会如何实现像双向地图这样的东西?

时间:2014-04-22 22:44:44

标签: c++ std

我想要某种容器,它给出了整数和字符串之间的双向映射。

我给它一个int,它给了我与之相关的字符串。

我给它字符串,它给了我与之相关的int。

你会如何实现这样的事情?

2 个答案:

答案 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;
};