查看映射 c++ 中是否有某个键
在我的函数中,我有这个参数:
map<string,int> *&itemList
我想首先检查密钥是否存在。如果该键存在,则获取该值。 我想:这
map<string,int>::const_iterator it = itemList->find(buf.c_str());
if(it!=itemList->end())
//how can I get the value corresponding to the key?
是检查密钥是否存在的正确方法吗?
in my function, i have this parameter:
map<string,int> *&itemList
I want to first check if a key exists. If this key exists obtain the value.
I thought this:
map<string,int>::const_iterator it = itemList->find(buf.c_str());
if(it!=itemList->end())
//how can I get the value corresponding to the key?
is the correct way to check whether the key exists?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
是的,这是正确的方法。与键关联的值存储在 std::map 迭代器的第二个成员中。
Yes, this is correct way to do this. The value associated with the key is stored in
second
member ofstd::map
iterator.无需遍历所有项目,只需访问具有指定键的项目即可。
编辑:
以前的版本查找地图两次。更好的解决方案是:
No need to iterate through all the items, you can just access the one with the specified key.
EDIT:
The previous version looks up the map twice. A better solution would be: