#include <iostream>
#include <vector>
#include <queue>
#include <stack>
#include <deque>
#include <set>
#include <map>//map也会有俩 一个 map 一个multimap 但是multimap不会去用
using namespace std;
int main(){
//map和set是类似的 底层实现都是红黑树 不一样的是map的写法很奇幻
map<int, int> a;//map是一个映射 或者说里面存的是一个二元组 他会把第一个元素映射到第二个元素
a[1] = 2;
a[1000000000] = 3;
cout << a[1000000000] << endl;
//map在定义完之后用法其实跟数组差不多
// 为了和数组区分 所以map第一个值可以定义成其他类型
map<string, vector<int>> b;
b["yxc"] = vector<int>({1, 2, 3, 4});
cout << b["yxc"][2] << endl;//map的所谓数组下标可以定义成字符串
//插入可以这样写
b.insert({"a", {}});//插入可以插入一个二元组 a是第一个string类型 第二个元祖是第二个类型
cout << b["yxc"][0] << endl;
// find和set一样也可以查找
cout << (b.find({"yxc") == b.end()) << endl;
//find和send一样里面是传入一个key?send是啥?
return 0;
//map是一个肥肠有用的结构 可以像用数组一样去用其他的变量、结构
}