迭代器
如何像c里面使用*p
,然后p++
这样的方式遍历呢?使用迭代器,迭代器相当于返回了一个指针,当然它更抽象功能更多。
1 | vector<int> a = {1, 2, 3, 4}; |
1 | int a[] = {1, 2, 3, 4}; |
函数
sort
<algorithm>
,头文件中sort(begin, end, compare)
- 传入表示开始结束的随机访问迭代器
- 第三个参数compare可选,是一个具有两个参数的bool值函数,默认用
<
比较,从小到大
Queue
优先队列
priority_queue
模板有三个参数,第一个参数是储存对象的类型,第二个参数是存储元素的底层容器,第三个参数是一个决定元素顺序的断言。其中第二参数默认vector
,第三参数默认<
大的元素排在前面 。
1 | template <typename T, typename Container=std::vector<T>, typename Compare=std::less<T>> class priority_queue |
创建一个优先队列
1 | using namespace std; |
创建一个储存字符串的优先队列,其底层存储结构是vector
,根据>
判断顺序。
由于默认顺序是按照<
比较,所以也可在结构体中重载<
运算符,在实现自定义顺序的目的
1 | struct node{ |