字符串对的最佳映射

时间:2013-02-27 10:13:20

标签: c++ map stl

我有很多字符串对,我正在寻找一种将这些字符串中的字符串映射到彼此的好方法 假如我有 str1 str2 对,我需要为 str1 str1 <返回 str2 / em> for str2
我知道我可以使用地图

map<string, string>

但是如果我只是使用std :: map,我需要将每个字符串存储两次作为键和值。
哪个是避免重复的最佳解决方案?是否有为此优化的特殊容器?

1 个答案:

答案 0 :(得分:2)

使用boost::bidirectional_maphttp://www.boost.org/doc/libs/1_52_0/libs/bimap/doc/html/index.html

简单示例

#include <boost/bimap/bimap.hpp>
#include <string>
#include <iostream>

int main()
{
   namespace bi = boost::bimaps;
   typedef bi::bimap<std::string, std::string> bimap;

   bimap map;
   map.insert(bimap::value_type("1", "2"));
   std::cout << map.left.at("1") << std::endl;
   std::cout << map.right.at("2") << std::endl;
}

http://liveworkspace.org/code/jitNY$0