C++ map::find() in stl


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
}

,但我不知道如何处理二维。

一次一个维度:

auto it1 = DP.find(1);
if (it1 != DP.end()) {
  auto it2 = it1->find(2);
  if (it2 != it1->end()) {
    // found: it2->second
  }
}

我认为 kerrek sb 's代码存在一个小问题。访问第二(内部(维度的方式应该是这样:

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>

最新更新