C++STL

huangjh04 / 2023-08-02 / 原文

assert()函数

 

max_element()函数和min_element()函数

时间复杂度O(n)

作用:求C++数组或vector求最大值最小值,二者返回的都是迭代器或指针,可以通过*符号来获得值

max_element()和min_element()函数是一样的用法,这里要注意的是如果有多个最大值或者最小值,返回的是第一次出现的位置。

例如:vector<int> v;

   int mx = max_element(v.begin(),v.end()) - v.begin();这样就获得了向量中的最大值第一次出现的位置(向量中的下标)v[mx]才是向量中的最大值

 

 

is_sorted()函数

判断一个容器是否按顺序排列(默认为不降序),是则返回true,否则返回false

例如:vector<int> v;v={1,2,2,3,5};

   is_sorted(v.begin(),v.end())返回true

 

 

unordered_map与map

unordered中文翻译即 “无序的” ,自然地,unordered_map也就是不排序的map的意思。unordered_set与set和unordered_map与map是可以类比的,它们的区别大致是一样的。

 

unordered_map是不按键值排序的,插入的时间是O(logn),查询时间是O(1)

map是按键值排序的,插入的时间是O(logn),查询时间是O(logn)

 

unordered_map的使用比较局限,它的key只能是int、double等基本类型以及string,而不能是自己定义的结构体

map可以支持所有类型的键值对