C++ 请问怎么获取 map的元素呢?

现在map里面已经有东西了,我就想调出他里面第i项的值!... 现在map里面已经有东西了,我就想调出他里面第i项的值! 展开
 我来答
paypang
2011-06-11 · TA获得超过382个赞
知道小有建树答主
回答量:106
采纳率:0%
帮助的人:121万
展开全部
map和vector不同,如果使用下标符号访问不存在的元素会将该元素添加进map
比如如下编写程序时:
map <string ,int> word_count;
word_count["Anna"]=1;
将发生以下事情:
1在word_count中查找建为Anna的元素,没有找到
2将一个新的键-值对插入word_count中。它的键是const string类型的对象,保存Anna,值采用值初始化
3将这个新的键-值对插入word_count中
4读取新插入的元素,并将它的值赋为1

所以一般访问map中的元素采用其成员函数
m.find(k)
如果m容器中存在按k索引的元素,则返回指向该元素的迭代器。如果不存在,则返回超出末端迭代器!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友39d9835
2011-06-11 · TA获得超过615个赞
知道小有建树答主
回答量:573
采纳率:0%
帮助的人:744万
展开全部
通过key,比如
map<char, string> mymap;
mymap['a'] = "an element";
cout << mymap['a'];

你真是这种用途何必用map,根本用不到key/value对
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友3ad5602
推荐于2017-11-28 · TA获得超过717个赞
知道小有建树答主
回答量:345
采纳率:100%
帮助的人:358万
展开全部
map也是可以遍历的,你遍历一遍就知道了
map<X, Y> test;
for (map<X, Y>::iterator iter = test.begin(); iter != test.end(); ++iter)
{
X x = iter->first;
Y y = iter->second;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zjstudy
2011-06-11 · TA获得超过106个赞
知道小有建树答主
回答量:105
采纳率:0%
帮助的人:128万
展开全部
用map的迭代器:
typedef map<Key,T> yourMap; /* 假设这是你定义的Map类型 */
yourMap temp; /* 假设这是你的Map */
yourMap iterator it = temp.begin();
while(it != temp.end()){
cout<<(*it).first; //取出第1个元素,即键
cout<<(*it).second; // 取出第2个元素,即值
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式