摘要:
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 的单向链接性也意味着它 阅读全文
摘要:
list list<T> 容器模板定义在 list 头文件中,是 T 类型对象的双向链表。 list 容器具有一些 vector 和 deque 容器所不具备的优势,它可以在常规时间内,在序列已知的任何位置插入或删除元素。这是我们使用 list,而不使用 vector 或 deque 容器的主要原因 阅读全文
摘要:
指针 #include <iostream> using namespace std; int main() { // 实际变量的声明 int var = 20; // 指针变量的声明 int *addr; // 在指针变量中存储 var 的地址 addr = &var; cout << "var 阅读全文
摘要:
容器 容器是用来存储数据的序列,它们提供了不同的存储方式和访问模式。 STL 中的容器可以分为三类: 1、序列容器:存储元素的序列,允许双向遍历。 vector:动态数组,支持快速随机访问。 deque:双端队列,支持快速插入和删除。 list:链表,支持快速插入和删除,但不支持随机访问。 2、关联 阅读全文
摘要:
deque deque<T>,一个定义在 deque 头文件中的容器模板,可以生成包含 T 类型元素的容器,它以双端队列的形式组织元素。可以在容器的头部和尾部高效地添加或删除对象,这是它相对于 vector 容器的优势。 创建 #include <algorithm> #include <strin 阅读全文
摘要:
vector vector<T> 容器是包含 T 类型元素的序列容器,和 array<T,N> 容器相似,不同的是 vector<T> 容器的大小可以自动增长,从而可以包含任意数量的元素;因此类型参数 T 不再需要模板参数 N。只要元素个数超出 vector 当前容量,就会自动分配更多的空间。只能在 阅读全文
摘要:
array array<T,N> 模板定义了一种相当于标准数组的容器类型。它是一个有 N 个 T 类型元素的固定序列。除了需要指定元素的类型和个数之外,它和常规数组没有太大的差别。显然,不能增加或删除元素。 模板实例的元素被内部存储在标准数组中。和标准数组相比,array 容器的额外幵销很小,但提供 阅读全文
摘要:
序列容器 序列容器以线性序列的方式存储元素。它没有对元素进行排序,元素的顺序和存储它们的顺序相同。5 种标准的序列容器,每种容器都具有不同的特性: array<T,N> (数组容器) :长度固定的序列,有 N 个 T 类型的对象,不能增加或删除元素。 vector<T> (向量容器) :长度可变的序 阅读全文
摘要:
C++11可以将{}初始化器用于任何类型(可以用等号,也可以不用) 数组、集合初始化 在C++11中,集合(列表)的初始化已经成为C++的一个基本功能,被称为“初始化列表”: // C++98支持,C++11支持 int a[] = {1, 2, 3}; // C++98不支持,C++11支持 in 阅读全文