4个回答
展开全部
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索引的元素,则返回指向该元素的迭代器。如果不存在,则返回超出末端迭代器!
比如如下编写程序时:
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索引的元素,则返回指向该元素的迭代器。如果不存在,则返回超出末端迭代器!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
通过key,比如
map<char, string> mymap;
mymap['a'] = "an element";
cout << mymap['a'];
你真是这种用途何必用map,根本用不到key/value对
map<char, string> mymap;
mymap['a'] = "an element";
cout << mymap['a'];
你真是这种用途何必用map,根本用不到key/value对
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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;
}
map<X, Y> test;
for (map<X, Y>::iterator iter = test.begin(); iter != test.end(); ++iter)
{
X x = iter->first;
Y y = iter->second;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用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个元素,即值
}
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个元素,即值
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询