map容器模板定义如下:
template < class Key, // 指定键(key)的类型
class T, // 指定值(value)的类型
class Compare = less, // 指定排序规则
class Alloc = allocator > // 指定分配器对象的类型
> class map;
插入
第一种:向 map 容器中插入键值对
mapmapStudent; mapStudent.insert(pair (1,“第一种”));
第二种:在当前 map 容器中的指定位置处构造新键值对。其效果和插入键值对一样,但效率更高。(不知道是不是真的效率高)
myMap.emplace(11,"第二种");map各种查询
map嵌套vector,查询键值方法:
//vector嵌套vector int mode = 6; vector> ivec(mode); //6行 //插入值 for (int i2 = 0; i2 < ivec.size(); i2++) { //行 for (int i = 0; i <= 3; i++) { //列 ivec[i2].push_back(99); } } //遍历vector输出值 for (int i = 0; i < mode; i++) { cout << endl << "行: " << i + 1 << ": "; for (vector ::const_iterator p = ivec[i].begin(); p != ivec[i].end(); p++) { cout << *p << " "; } } cout < >>m; //map嵌套vector m.insert(pair >>("第一种材料", ivec)); m.insert(pair >>("第二种材料", ivec)); m.insert(pair >>("第三种材料", ivec)); m.insert(pair >>("第四种材料", ivec)); if (!m.empty()) { for (map >>::iterator it = m.begin(); it != m.end(); ++it) { cout << endl << it->first << ":"; //取map的键 for (int i = 0; i < mode; i++) { //取map值 cout << endl << "行: " << i + 1 << ": "; for (vector ::const_iterator p = ivec[i].begin(); p != ivec[i].end(); p++) { cout << *p << " "; } } } }
map嵌套map查询键值:
mapmm; mm.emplace("22", "444"); mm.emplace("22", "444"); map >config; config.emplace("第一", mm); config.emplace("第二", mm); config.emplace("第三", mm); //遍历map容器 if (!config.empty()) { for (map >::iterator it = config.begin(); it != config.end(); ++it) { cout << endl << it->first << ":"; for (map ::iterator mit = it->second.begin(); mit != it->second.end(); mit++) { cout << mit->first << " " << mit->second; } } }



