C ++:map <wstring,wstring>从第一个</wstring,wstring>获得第二个

时间:2013-05-22 12:25:37

标签: c++ map wstring

我有一个

map <wstring,wstring>.

我插入了这样的对:

m_Translations.Content().insert(pair<wstring,wstring>(L"rome",L"roma"));
m_Translations.Content().insert(pair<wstring,wstring>(L"water",L"aqua"));

我如何确定&#34; water&#34;的翻译?从地图? 换句话说:我想从第一个开始获得第二个项目。 搜索区分大小写。

感谢您的帮助!

2 个答案:

答案 0 :(得分:4)

有点奇怪的问题。使用operator[]访问地图的默认方式如何?

wstring aqua = m_Translations.Content()[L"water"];

如果您不确定是否存在翻译,可以使用find方法进行检查:

const auto& dict = m_Translations.Content();
auto pAqua = dict.find(L"water");

if (pAqua != dict.end())
{
  // Found it!
}
else
{
  // Not there...
}

答案 1 :(得分:3)

您可以使用std::map上提供的operator[]

例如:

map<wstring, wstring> myMap = m_Translations.Content();

myMap.insert(pair<wstring, wstring>(L"rome", L"roma"));
myMap.insert(pair<wstring, wstring>(L"water", L"aqua"));

// waterText value would be 'aqua'
wstring waterText = myMap[L"water"];