stl中的C++ map::find()
Posted
技术标签:
【中文标题】stl中的C++ map::find()【英文标题】:C++ map::find() in stl 【发布时间】:2017-04-30 22:01:11 【问题描述】: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
但我不知道如何处理二维。
【问题讨论】:
也可以考虑直接使用std::map<std::pair<int, int>, std::string>
【参考方案1】:
一次一个维度:
auto it1 = DP.find(1);
if (it1 != DP.end())
auto it2 = it1->find(2);
if (it2 != it1->end())
// found: it2->second
【讨论】:
【参考方案2】:我认为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>
【讨论】:
以上是关于stl中的C++ map::find()的主要内容,如果未能解决你的问题,请参考以下文章
小白学习C++ 教程二十一C++ 中的STL容器Arrays和vector