如何把一个vector 和一个map<int,vector <int>>赋值到一个容器内?

假设有一个vector<int>A,另外一个是map<int,vector<int>>B。现在我定义了一个map<vector<int>,map<int,vector<i... 假设有一个vector<int> A ,另外一个是map<int,vector <int>> B。
现在我定义了一个map<vector<int>,map<int,vector <int>>> C,那么如何把A和B 赋值到C里面去?
展开
 我来答
藤原子大雄
2018-05-04 · TA获得超过7197个赞
知道大有可为答主
回答量:6977
采纳率:82%
帮助的人:1754万
展开全部
容器用来存储数据的,数据可以是用户自定义类型(对象),也可以是预定义类型,c++中的容器主要使用如vector,list (顺序容器) 这些都是已经封装好了的,包含头文件"vector","list",通过迭代器iterator访问容器中的数据,map,set(关联容器),关联容器map键值对形式出现key-value,key唯一,mutimap多映射可以不唯一;set是一个单一值的集合,如1,2,3,4 顺序容器:vector,list 分别举例 对比 vector容器的特点:在内存中是一片连续的存储区域,初始化的时候,可以指定容量,比如如果定义容量50 的容器存储 60个string对象,由于初始容量不足60,容器将会重新定义一个容量是原来的2倍新容器,然后拷贝原容器的对象到新容器. 读取速度快,插入删除效率低.如果仅仅在容器头或尾部 进行增删改,推荐使用deque,专门提供了对首尾的操作. list容器特点:相当数据结构的链表,不是一个连续的存储区域,插入,删除很方便,但是查询速度慢 vector<string> vec 就是定义了一个vector容器,可以通过 vec.push_back(), push_font(),insert(position,value) 想vector中添加一个指定值 list<int> ilist<初始大小,默认赋值> list<int> ilist(20 -1) 初始20个值为-1的list 然后操作可以参考这些这些类封转的方法。 关联容器:set map mutimap mutiset key-->value形式 1--1 2--2 3--3 set 形式 1234,键值唯一; 具体容器的操作方法,可以调用其成员函数.
丿艾瑞灬莉娅
2018-05-03 · TA获得超过916个赞
知道小有建树答主
回答量:926
采纳率:78%
帮助的人:429万
展开全部
    C.insert(make_pair(A,B));
追问
谢谢,编译通过了。还有一点不清楚的是make_pair的作用是什么?为什么要加上这个?
然后如果我想删除C中的某个A值,如何顺便一起把A对应的B也给删了?
追答

因为insert里面的参数是 map.insert( pair<T1, T2> (x1,x2)),T是参数类型,x是对应参数类型的值,make_pair的作用就是临时创建一个pair<T1,T2>类型的变量

删除的话,首先你要知道map到底是干吗的,map(key, value)中的key和value它们是一个二元组,一个map里只能有一个相同的key,所以map适合存放没有重复且存在对应关系的二元组

    auto it = C.find(A);    
    // 旧版编译器请写 
    // map<vector<int>,map<int,vector <int>>>::iterator it = C.find(A);
    
    if(it == C.end())
        cout << "Not Found!\n";
    else
    {
        C.erase(it);    //删除
        cout << "Delete Ok!\n";
    }
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式