关于map 及 map 骚操作

map用法:一般当作一个下表无穷大的数组

 

关于它的骚操作:map的鬼畜用法,可以用来字符串的处理。因为map的下标可以定义为字符串形式,这是map最好用的地方

(下面的代码中会讲)....

 

上代码!!!(代码后有它的缺点以及其复杂度分析,注意查收)

 

 1 #include<cstdio>
 2 #include<map>//用map所引用的库 
 3 #include<string>
 4 #include<iostream>
 5 
 6 using namespace std;
 7  
 8 map<int,int> ma;//声明map  两个int分别为数组下标类型和数组元素类型,ma为变量名 
 9 
10 map<long long,int> gg;//数组的下标类型改为long long 
11 
12 map<int,double> h;//数组元素类型改为double 
13 
14 string s;//c++语言中定义字符串 
15 
16 map<string,int> smap;//map的鬼畜用法,可以用来字符串的处理 
17 
18 map<int, map<int,int> > erwei;//如果要定义一个二维的map,则需要用map中嵌套一个map,记住格式 
19 
20 int main()//logn
21 {
22     cin >> s; cout << s << endl;//注意定义string后进行操作,只能用cin和cout输入输出 
23     
24     smap["niubi"] = 233;//这就是字符串的骚操作,可以用来字符串的处理 
25     smap[s] = 345678;//下标字符串也可以通过输入的方式进行存储 
26     
27     ma[2147483647] = 233;//注意下标数据不要超过int类型的边界 
28     ma[-12345678] = 333;//即使负数也可 
29     
30     h[0] =3.14;//注意因为它定义的元素类型为double(见12行),所以可以用浮点值进行赋值 
31     
32     erwei[23][32] = 233;//定义的二维map 
33     return 0;
34 } 

为什么map这样冷门??!!

首先,map要比数组慢很多,所以一般能用数组不用map:
对map中的元素进行访问或者修改的时间复杂度为O(logn),而对于数组,时间复杂度为O(1)

 

那在何种情况下使用map??!!

 

对于map的使用,只有两种情况可以使用
1.字符串作为数组下标
2.需要使用无穷大的数组(在数组开不了的情况下,且一般很少情况)

posted @ 2019-01-31 13:25  dfydn  阅读(321)  评论(0编辑  收藏  举报