给map容器添加元素,用insert函数添加!!

如:map<string,int>m1;m1.insert(make_pair("lucy",20));不知道为什么第二个语句总是报错!!!什么原因??谢谢!!... 如:
map<string,int> m1;
m1.insert(make_pair("lucy",20));
不知道为什么第二个语句总是报错!!!什么原因??谢谢!!
展开
 我来答
hwd0312
推荐于2018-08-23 · TA获得超过4336个赞
知道小有建树答主
回答量:1043
采纳率:100%
帮助的人:166万
展开全部

用的是c++ map的insert方法。

函数定义:

single element (1)  插入单个元素 队尾插入

pair<iterator,bool> insert (const value_type& val);

with hint (2)  插入单个元素 在position的位置插入

iterator insert (iterator position, const value_type& val); 

range (3)  插入一串元素 一般用的是另一个map中的,从开始到结束

template <class InputIterator> void insert (InputIterator first, InputIterator last);

示例:

// map::insert (C++98)
#include <iostream>
#include <map>

int main ()
{
  std::map<char,int> mymap;

  // first insert function version (single parameter):第1种
  mymap.insert ( std::pair<char,int>('a',100) );
  mymap.insert ( std::pair<char,int>('z',200) );

  std::pair<std::map<char,int>::iterator,bool> ret;
  ret = mymap.insert ( std::pair<char,int>('z',500) );
  if (ret.second==false) {
    std::cout << "element 'z' already existed";
    std::cout << " with a value of " << ret.first->second << '\n';
  }

  // second insert function version (with hint position):第2种
  std::map<char,int>::iterator it = mymap.begin();
  mymap.insert (it, std::pair<char,int>('b',300));  // max efficiency inserting
  mymap.insert (it, std::pair<char,int>('c',400));  // no max efficiency inserting

  // third insert function version (range insertion):第3种
  std::map<char,int> anothermap;
  anothermap.insert(mymap.begin(),mymap.find('c'));

  // showing contents:
  std::cout << "mymap contains:\n";
  for (it=mymap.begin(); it!=mymap.end(); ++it)
    std::cout << it->first << " => " << it->second << '\n';

  std::cout << "anothermap contains:\n";
  for (it=anothermap.begin(); it!=anothermap.end(); ++it)
    std::cout << it->first << " => " << it->second << '\n';

  return 0;
}


   

FrankHB1989
推荐于2017-09-16 · TA获得超过4.2万个赞
知道大有可为答主
回答量:4569
采纳率:100%
帮助的人:3101万
展开全部
m1.insert(make_pair("lucy",20));

m1.insert(make_pair(string("lucy"),20));
试试。
make_pair是std::pair的helper function,是个函数模板,根据参数确定匹配的pair的元素类型,所以LZ的用法弄出来的元素是pair<char* int>类型的。
====
[原创回答团]

参考资料: 原创

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dalookzhu
2010-07-25 · TA获得超过276个赞
知道小有建树答主
回答量:229
采纳率:0%
帮助的人:285万
展开全部
#include <iostream>
#include <map>
#include <string> //是不是头文件少了
using namespace std;

int main() {
map<string,int> m1;
m1.insert(make_pair("lucy",20));
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式