怎么用insert函数给map容器添加元素?

怎么用insert函数给map容器添加元素?,第1张

用的是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

}

 

你的程序的while循环条件有问题,只有在输入为0时,才往vector中添加元素。

应该是笔误~~

    while(cin>>ival&&ival!=0)//ival==0

修改后测试验证OK。

如果我没有理解错误的话,3和4行实现了同样的 *** 作,就是把name这个字符串放到attrNameArray这个容器里面,然后吧这个容器放到m_clAttrNameArray。如果写这个代码的人是使用过STL库的,那么我可以推断push_back是在容器的最后放入元素。这个方法来自于vector这个容器。示例代码如下:

/*

Author: qcq

Date: 2015/5/12

E-mail: qinchuanqing918@163.com

*/

#include<iostream>

#include<vector>

using namespace std

int main(){

vector<int> data

for (int i = 0 i < 10 i++){

data.push_back(i + 2)

}

for (vector<int>::iterator temp = data.begin() temp != data.end() temp++){

cout << *temp << endl

}

return 0

}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11854298.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-19
下一篇2023-05-19

发表评论

登录后才能评论

评论列表(0条)

    保存