向map中添加成员操作

来源:互联网 发布:网络攻防 编辑:程序博客网 时间:2024/05/20 07:16

首先从一个例子开始:

定义一个map,关键字是家族的姓,值是一个vector,保存家中孩子们的名字。实现添加新的家族以及向已有家庭中添加新的孩子。

#include <iostream>#include <set>#include<vector>#include<map>using namespace std;int main(){    map<string,vector<string> > family;    string last_name;    string first_name;    int k=0;    while(k<5)    {        cout<<" 添加新家族或者家族的新孩子(5个)"<<endl;        cin>>last_name;        cin>>first_name;        family[last_name].push_back(first_name);        k++;    }    // for(map<string,vector<string>>::iterator it=family.begin();it != family.end();++it)    for(auto it=family.begin(); it != family.end(); ++it)    {        //   for(vector<string>::iterator iter=it->second.begin();iter != it->second.end();++iter)        for(auto  iter=it->second.begin(); iter != it->second.end(); ++iter)        {            cout<<*iter<<" . "<<it->first<<endl;        }    }    return 0;}

从上面代码中可以看到,可以直接使用key作为map中的关键字来查询相关的键值对;也可以直接使用key来添加数据成员;

cin>>last_name;cin>>first_name;family[last_name].push_back(first_name);

其中,last_name就是key,直接使用family[last_name]就可以找到对应的value类型;而在本例中,value又是一个vector类型,使用vector中基本的插入操作push_back来加入到vector中;


map添加数据成员的三种方法

例如:
map< int ,string > maplive;
1.maplive.insert(pair< int,string >(102,”aclive”));

2.maplive.insert(map< int,string >::value_type(321,”hai”));

3.maplive[112]=”April”; //map中最简单最常用的插入添加!