map <int, map<int, string>> DP;
if( DP.find( ? ) != DP.end() )
{
// have found
}
如何填写()。它看起来像两个维度。我知道如何处理一个维度,例如:
map<int, string> DP;
if( DP.find(1) != DP.end() )
{
// have found
}
但我不知道如何处理两个方面。
答案 0 :(得分:1)
一次一个维度:
auto it1 = DP.find(1);
if (it1 != DP.end()) {
auto it2 = it1->find(2);
if (it2 != it1->end()) {
// found: it2->second
}
}
答案 1 :(得分:0)
我认为 Kerrek SB 的代码存在一点问题。访问第二(内部)维度的方式应该是这样的:
auto OuterIter = DP.find(1);
if (OuterIter != DP.end())
{
auto InnerMap = OuterIter->second;
auto InnerIter = InnerMap.find(0);
if (InnerIter != InnerMap.end())
{
// found the second(inner) dimension element
}
}
你可以考虑 chtz 的建议:您也可以考虑直接使用std :: map,std :: string&gt;