在本章中,我们将学习:
1.地图介绍。
2.地图声明。
3.多维地图
4.传递std :: map到函数
5.映射成员函数以遍历元素。
6.映射成员函数检查容量。
7. map成员函数访问元素。
8. map成员函数修改元素。
1.地图介绍。
1.地图是关联容器。
2.它们用于保存键值对。
3.键值通常用于对元素进行排序和唯一标识。
4.映射中的元素始终按其键排序。
5. map通常比unordered_map容器通过键访问单个元素的速度慢。
您可以使用“pair”.
typedef 对<const Key, T> value_type;
您需要使用以下头文件来使用map:
#include <map>
2.地图声明。
地图可以声明如下:
std::map<char,int> mymap; mymap['b'] = 100; mymap['a'] = 200; mymap['c'] = 300;
3.多维地图
创建2D地图的语法:
map< key_1_type, map< key_2_type, value_type> > object;
4.传递std :: map到函数
———————————————————————————-
您可以通过两种方式传递地图:
1.传递价值
2.通过引用
1.传递价值
void func(map<char,int> mymap) { mymap['d'] = 400; } int main () { std::map<char,int> mymap; mymap['b'] = 100; mymap['a'] = 200; mymap['c'] = 300; func(mymap); std::cout << "mymap contains using .begin:"<<endl; for (std::map<char,int>::iterator it=mymap.begin(); it!=mymap.end(); ++it) std::cout << it->first << " => " << it->second << '\n'; return 0; }
2.通过引用
void func(map<char,int> &mymap) { mymap['d'] = 400; } int main () { std::map<char,int> mymap; mymap['b'] = 100; mymap['a'] = 200; mymap['c'] = 300; func(mymap); std::cout << "mymap contains using .begin:"<<endl; for (std::map<char,int>::iterator it=mymap.begin(); it!=mymap.end(); ++it) std::cout << it->first << " => " << it->second << '\n'; return 0; }
5.映射成员函数以遍历元素。
开始 :它将使迭代器返回到开始
结束 :它将返回迭代器结束
初学者 :它将返回反向迭代器返回到反向开始
撕裂 :它将反向迭代器返回到反向结束
开始 :它将const_iterator返回到开头
结束 :它将返回const_iterator结束
#include <iostream> #include <map> //for more tutorials 上 C, C ++, STL, DS visit www.ProDeveloperTutorial.com using namespace std; int main () { std::map<char,int> mymap; mymap['b'] = 100; mymap['a'] = 200; mymap['c'] = 300; std::cout << "mymap contains using .begin:"<<endl; for (std::map<char,int>::iterator it=mymap.begin(); it!=mymap.end(); ++it) std::cout << it->first << " => " << it->second << '\n'; std::cout << "mymap contains using .rbegin:"<<endl; std::map<char,int>::reverse_iterator rit; for (rit=mymap.rbegin(); rit!=mymap.rend(); ++rit) std::cout << rit->first << " => " << rit->second << '\n'; std::cout << "mymap contains using .cbegin:"<<endl; for (auto it = mymap.cbegin(); it != mymap.cend(); ++it) std::cout << it->first << " => " << it->second << '\n'; std::cout << '\n'; return 0; }
输出:
mymap contains using .begin: a => 200 b => 100 c => 300 mymap contains using .rbegin: c => 300 b => 100 a => 200 mymap contains using .cbegin: a => 200 b => 100 c => 300
6.映射成员函数检查容量。
空的 :测试容器是否为空
尺寸 :返回容器的大小
mabx_size :返回最大大小
7. map成员函数访问元素。
运算符[] :访问元素
在 :访问元素
#include <iostream> #include <map> //for more tutorials 上 C, C ++, STL, DS visit www.ProDeveloperTutorial.com using namespace std; int main () { std::map<char,int> mymap; mymap['b'] = 100; mymap['a'] = 200; mymap['c'] = 300; mymap['d'] = 500; std::cout << "mymap['d'] is " << mymap['d'] << '\n'; mymap.at('d') = 10; std::cout << "mymap['d'] is " << mymap['d'] << '\n'; return 0; }
输出:
mymap['d'] is 500 mymap['d'] is 10
8. map成员函数修改元素。
插入 :插入元素
抹去 :擦除元素
交换 :交换内容
明确 :清除内容