C++ vector 嵌套 map

如题 代码如下
vector<map <char*,int> > ss;
vector<map <char*,int> > ::iterator it;
map <char*,int> s;
s.insert(map <char*,int> ::value_type("12",3));
s.insert(map <char*,int> ::value_type("23",4));
ss.push_back(s);
ss.push_back(s);

在网上没看到有vector 嵌套map的,就写了一个试试。
但是到了 push_back()的地方就会报错。。

是不能这样嵌套么?
用标准的C-free 编译没问题,VS2010 报错
d:\vc_project\bbbtets\bbbtets\ss.cpp(10): 参见对正在编译的函数 模板 实例化“std::pair<_Ty1,_Ty2>::pair<const char(&)[5],int>(_Other1,_Other2 &&)”的引用
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\utility(163): error C2439: “std::_Pair_base<_Ty1,_Ty2>::first”: 未能初始化成员

第1个回答  推荐于2016-03-09
#include <map>
#include <vector>
#include <string>

void f(std::vector<std::map<std::string, int> >& ss)
{
      std::map<std::string, int> s;
      s.insert (std::make_pair("12", 3));
      s.insert (std::make_pair("23", 4));
      ss.push_back(s);
}

本回答被提问者采纳
第2个回答  2013-09-08
vs2010没更新了。用2012吧。支持标准多一些。
第3个回答  2013-09-08
报错的是map的问题
map<key,value> ; 你可以用map<string,int>

C++里map嵌套vector时报错
如zjfaok所说,map的参数是有条件的,平时的一些常用类型能够直接用<运算符比较,但是现在key是自定义类Good,所以你需要在类Good中重载<运算符,相当于告诉map你可以用我的这个比较方法来对键Good进行比较,在类Good中添加如下代码即可:bool operator<(const Good& other) const{ return this->val...

C++中如何如果定义一个关联容器map< int,vector<类> > 如何用make_pair...
你声明的map是map< int,vector<ID_Card> > data_m,而插入的对象则是一个(int, ID_Card),并不是(int, vector<ID_Card>),所以出现错误。可以修改map的声明为map<int, ID_Card> data_m;应该就可以了。希望能够帮到你。

c++如何把一个vector容器内容追加到另一个容器后面?
c++中的容器主要使用如vector,list(顺序容器)这些都是已经封装好了的,包含头文件"vector","list",通过迭代器iterator访问容器中的数据,map,set(关联容器),关联容器map键值对形式出现key-value,key唯一,mutimap多映射可以不唯一;set是一个单一值的集合,如1,2,3,4。和其他变量定义一样,定义vecto...

怎样输出储存在map里的vector C++
typedef map<string, vector<class>> MAPVect;typedef MAPSTR::iterator IterVect;int main(){ vector<class> *pVect;MAPVect mapVect;\/\/假设mapVect里已经存储的有值 \/\/查找map string strKey = ...;IterVect itr = mapVect.find(strKey);if (itr == mapVect.end()){ return 0;} \/...

c++,可以大概讲一下关于vector、map的作用吗?
c++,可以大概讲一下关于vector、map的作用吗? 最近学了vector、map、set、multiset这些东西,可是感觉很模糊,不明白它们的作用,意义使用方式的东西,不要求都讲完,大概讲一些就好,谢谢。... 最近学了vector、map、set、multiset这些东西,可是感觉很模糊,不明白它们的作用,意义使用方式的东西,不要求都讲完,大概讲一些...

C++ STL基本容器的输入输出与初始化接口(vector、deque、stack,map...
编程中的高效工具,C++ STL容器功能强大,让我们直接来看它们的核心接口:1. vector: 有序数组,支持快速随机访问,初始化和输出如下:\/\/ 初始化 std::vector vec = {1, 2, 3, 4, 5}; \/\/ 输出 for (const auto& num : vec) { std::cout << num << " "; } 2....

c++程序中的map容器一般都是怎样初始化的 csdn
容器用来存储数据的,数据可以是用户自定义类型(对象),也可以是预定义类型,c++中的容器主要使用如vector,list (顺序容器) 这些都是已经封装好了的,包含头文件"vector","list",通过迭代器iterator访问容器中的数据,map,set(关联容器),关联容器map键值对形式出现key-value,key唯一,mutimap多映射可以...

C++中,将map中的value存放在vector中进行排序之后,那么怎样取到相应的...
把值定义为一个结构体,包括你原本的值元素,还有键的值, 这样当你要按照值排序的时候,把map的值也就是结构体放进vector中,剩下的按照你原来的值进行排序就行了

C++中map,vector容器的<(小于号)比较算法是否为严格弱序算法?_百度知 ...
首先,两个vector容器之间只有“==”和“!=”两种关系,vector容器内部元素的类型也不一定要重载小于号。不过,如果要对一个vector进行排序的话,那么元素一定要重载小于号,而且是严格弱序。因为sort函数对于A和B来说,如果A<B和B<A同时不成立的话,那么A就等于B。如果在 A != B 时,出现A < ...

C++中,将map中的value存放在vector中进行排序之后,那么怎样取到相应的...
cout<<endl; itermap++ } \/\/如果要在map中存入数值第一个可以这样 mapvalue[n].pushback(N); 第二个可以用itermap指针 \/\/ itermap.second.puback(n) \/\/也可以用如果是想存入一个vector mapvalue[n]=vectorvalue, 或者mapvalue.insert(vectorvalue)...

相似回答