摘要:
单调队列 经典用法:维持滑动窗口滑动过程中的最大值或最小值。最大值时,单调队列从头到尾降序 维持求解答案的可能性 单调队列里所有对象按照规定好的单调性组织 当某个对象从队尾进入单调队列时,会从队头或者队尾依次淘汰单调队列里,对后续求解答案没有帮助的对象 每个对象一旦弹出,可以结算其参与的答案,随后这 阅读全文
摘要:
单调栈 经典用法:在数组中当前元素的两侧找第一个比当前元素更大(更小)的数在哪 维持求解答案的可能性 单调栈里的所有对象按照规定好的单调性来组织 当某个对象进入单调栈时,会从栈顶开始依次淘汰单调栈里对后续求解答案没有帮助的对象 每个对象从栈顶弹出时结算当前对象参与的答案,随后这个对象不再参与后续求解 阅读全文
摘要:
数据结构定义 struct ListNode { int val; ListNode *next; ListNode() : val(0), next(nullptr) {} ListNode(int x) : val(x), next(nullptr) {} ListNode(int x, Lis 阅读全文
摘要:
指针 #include <iostream> using namespace std; int main() { // 实际变量的声明 int var = 20; // 指针变量的声明 int *addr; // 在指针变量中存储 var 的地址 addr = &var; cout << "var 阅读全文
摘要:
string string 作为类出现,其集成的操作函数足以完成多数情况下的需要。可以使用 "=" 进行赋值,使用 "==" 进行等值比较,使用 "+" 做串联。 要使用 string 类,必须包含头文件 <string>。在 STL 库中,basic_string 有两个预定义类型:包含 char 阅读全文
摘要:
priority_queue priority_queue 容器适配器定义了一个元素有序排列的队列。默认队列头部的元素优先级最高。因为它是一个队列,所以只能访问第一个元素,这也意味着优先级最高的元素总是第一个被处理。 // 有 3 个参数,其中两个有默认的参数;第一个参数是存储对象的类型,第二个参数 阅读全文
摘要:
queue 只能访问 queue<T> 容器适配器的第一个和最后一个元素。只能在容器的末尾添加新元素,只能从头部移除元素。 queue 的生成方式和 stack 相同,下面展示如何创建一个保存字符串对象的 queue: queue<string> words; 也可以使用拷贝构造函数: queue< 阅读全文
摘要:
stack 定义一个用来存放字符串对象的 stack 容器: stack<string> words; stack 容器适配器的模板有两个参数。第一个参数是存储对象的类型,第二个参数是底层容器的类型。stack<T> 的底层容器默认是 deque<T> 容器,因此模板类型其实是 stack<type 阅读全文
摘要:
容器适配器 容器适配器是一个封装了序列容器的类模板,它在一般序列容器的基础上提供了一些不同的功能。之所以称作适配器类,是因为它可以通过适配容器现有的接口来提供不同的功能。 stack<T>:是一个封装了 deque<T> 容器的适配器类模板,默认实现的是一个后入先出(Last-In-First-Ou 阅读全文
摘要:
forward_list forward_list 容器以单链表的形式存储元素。forward_list 的模板定义在头文件 forward_list 中。fdrward_list 和 list 最主要的区别是:它不能反向遍历元素;只能从头到尾遍历。 forward_list 的单向链接性也意味着它 阅读全文