map可以用来存储键值对,比如统计全班人的身高,采用的键值对为 人名:身高值。
c的写法
c的内置类型没有map
c++的写法
#include <map>
void mapDemo() {
map<int, char> map1; //初始化map
map1.insert(map<int, char>::value_type(1, 'A')); //添加元素
map1.insert(map<int, char>::value_type(2, 'B'));
map1.insert(map<int, char>::value_type(3, 'C'));
map1.erase(1); //删除键为1的键值对
map<int, char>::iterator it;
for (it = map1.begin(); it !=map1.end() ; it++) {
cout << (*it).first << "->"; //遍历map的键值对
cout << (*it).second << endl;
}
}
java的写法
public static void mapDemo() {
Map<Integer, String> map = new HashMap<>(); //声明并初始化
map.put(1, "A"); //添加元素
map.put(2, "B");
map.put(3, "C");
map.remove(1); //删除元素
map.get(2); //查找键为2的元素
map.put(3, "D"); //更改元素
System.out.println(map.toString());
}
go的写法
import "fmt"
func mapDemo() {
dict := make(map[int]string) //定义一个键为int类型,值为string类型的map
dict[1] = "A" //添加元素,前提是map中不存在该键
dict[2] = "B"
dict[3] = "C"
delete(dict, 1) //删除键为1的元素
fmt.Println("dict[2]=", dict[2])
dict[3] = "D" //更改元素,前提是map中已存在该键
fmt.Println(dict)
}
python的写法
def map_demo():
map1 = {1: "A", 2: "B", 3: "C"} # 定义map
map1[4] = "D" # 添加元素
map1.pop(3) # 删除键为3的元素
print(map1[1]) # 查找键为1的元素
map1[1] = "D" # 更改键为1的值,前提是改键值对存在
print(map1)
总结对比:
1. c没有map;
2. c++、java、go、python的写法较为类似,可以举一反三;