c++ map中,想要返回key 和 value 的值必须用迭代器吗?
map<string,int>m;之后直接写m.first或者m.second都过不了编译但是发现以前用过定义迭代器it之后it->first或者*(it.first)是...
map<string, int> m;
之后直接写 m.first 或者 m.second 都过不了编译
但是发现 以前用过定义迭代器it之后
it->first 或者 *(it.first) 是可以的
所以是想要得到 key 和 value 的值必须用迭代器吗?有没有方法可以直接提取?
O(∩_∩)O谢谢 展开
之后直接写 m.first 或者 m.second 都过不了编译
但是发现 以前用过定义迭代器it之后
it->first 或者 *(it.first) 是可以的
所以是想要得到 key 和 value 的值必须用迭代器吗?有没有方法可以直接提取?
O(∩_∩)O谢谢 展开
2个回答
展开全部
你好,map一般不会同时需要first和second,一般只是需要返回second(也就是value)的值。
如果是C++ 11标准的编译器,可以使用at来获取first的引用,例如
map<string,int> m;
m.insert(pair<string,int>("A", 1));
std::cout<<m.at("A")<<endl; //输出1
如果是C++11之前的编译器,有一个find的方法同样可以获取你想找的key的对应的value(second)的值:
std::cout<<m.find("A")->second<<endl;
谢谢,望采纳
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询