c++补充知识点
map&unordered_map区别用法
map和unordered_map都是c++中可以充当字典(key-value)来用的数据类型,但是其基本实现是不一样
1、map
map是通过红黑树(非平衡二叉树),内部数据有序,但是时间复杂度为O(logn),map的key需要定义operator <.;对于一般的数据类型被系统实现,用户自定义数据类型,需要重新定义该操作符。
2、unordered_map
不会根据key大小进行排序,存储时候根据key的hash值判断元素是否相同,内部元素无序,底部是一个防止冗余的哈希表,unordered_map的key需要定义hash_value并且重载operator==;
哈希表最大优点把数据存储和查找消耗的时间降低,时间复杂度为O(1);但是消耗的内存比较多,查询时间并不一定比map短,还要考虑数据量
vector<vector>行列表达
vector<vector>& matrix
//重点学会这种表达
int rowSize = matrix.size(), columnSize = matrix[0].size();