C++ 容器类 <vector>
C++ 容器类 简介C++ 标准库(Standard Template Library, STL)是 C++ 的一个重要组成部分,它提供了一组通用的模板类和函数,用于处理数据集合。 是 STL 中的一个容器类,用于存储动态大小的数组。 是一个序列容器,它允许用户在容器的末尾快速地添加或删除元素。与数组相比, 提供了更多的功能,如自动调整大小、随机访问等。语法在 C++ 中,使用 需要包含头文件 <>。以下是一些基本的语法: 声明一个 vector:std::vector myVector; 添加元素:myVector.push_back(10); 访问元素:int firstElement = myVector[0]; 获取元素数量:size_t size = myVector.size(); 清空 vector:myVector.clear(); 声明与初始化 需要指定元素类型,可通过多种方式进行初始化:#include #include int main() { std::vector vec1; ...
C++ 容器类 <unordered_set>
C++ 容器类 在C++中, 是标准模板库(STL)的一部分,提供了一种基于哈希表的容器,用于存储唯一的元素集合。与 set 不同,unordered_set 不保证元素的排序,但通常提供更快的查找、插入和删除操作。unordered_set 是一个模板类,其定义如下:#include std::unordered_set<Key, Hash = std::hash, Pred = std::equal_to, Alloc = std::allocator> Key 是存储在 unordered_set 中的元素类型。Hash 是一个函数或函数对象,用于生成元素的哈希值,默认为 std::hash。Pred 是一个二元谓词,用于比较两个元素是否相等,默认为 std::equal_to。Alloc 是分配器类型,用于管理内存分配,默认为 std::allocator。 语法以下是一些基本的 unordered_set 操作: 构造函数:创建一个空的 unordered_set。std::unordered_set...
C++ 容器类 <set>
C++ 容器类 C++ 标准库中的 是一个关联容器,它存储了一组唯一的元素,并按照一定的顺序进行排序。 提供了高效的元素查找、插入和删除操作。它是基于红黑树实现的,因此具有对数时间复杂度的查找、插入和删除性能。 容器中存储的元素类型必须满足以下条件: 元素类型必须可以比较大小。元素类型必须可以被复制和赋值。 语法包含头文件:#include 声明 set 容器std::set<元素类型> 容器名;常用操作 insert(元素): 插入一个元素。erase(元素): 删除一个元素。find(元素): 查找一个元素。size(): 返回容器中元素的数量。empty(): 检查容器是否为空。 实例下面是一个使用 的简单示例,包括元素的插入、查找、删除和输出结果。实例#include #include int main() { // 声明一个整型 set 容器 std::set mySet; // 插入元素 mySet.insert(10); mySet.insert(20); ...
C++ 容器类 <queue>
C++ 容器类 C++ 标准库中的 头文件提供了队列(Queue)数据结构的实现。队列是一种先进先出(FIFO, First In First Out)的数据结构,它允许在一端添加元素(称为队尾),并在另一端移除元素(称为队首)。队列是一种线性数据结构,它遵循以下规则: 元素只能从队尾添加。元素只能从队首移除。 语法在 C++ 中,队列的语法如下:#include // 声明队列std::queue q;这里 Type 是队列中存储元素的数据类型。常用操作队列提供了以下常用操作: empty(): 检查队列是否为空。size(): 返回队列中的元素数量。front(): 返回队首元素的引用。back(): 返回队尾元素的引用。push(): 在队尾添加一个元素。pop(): 移除队首元素。 实例下面是一个使用 C++ 标准库 的简单实例:实例#include #include int main() { // 创建一个整数队列 std::queue q; // 向队列中添加元素 ...
C++ 容器类 <priority_queue>
C++ 容器类 在 C++ 中, 是标准模板库(STL)的一部分,用于实现优先队列。优先队列是一种特殊的队列,它允许我们快速访问队列中具有最高(或最低)优先级的元素。在 C++ 中,priority_queue 默认是一个最大堆,这意味着队列的顶部元素总是具有最大的值。priority_queue 是一个容器适配器,它提供了对底层容器的堆操作。它不提供迭代器,也不支持随机访问。语法以下是 priority_queue 的基本语法:#include // 声明一个整型优先队列priority_queue pq; // 声明一个自定义类型的优先队列,需要提供比较函数struct compare { bool operator()(int a, int b) { return a > b; // 这里定义了最小堆 }};priority_queue<int, vector, compare> pq_min;常用操作 empty(): 检查队列是否为空。size():...
C++ 容器类 <map>
C++ 容器类 在 C++ 中, 是标准模板库(STL)的一部分,它提供了一种关联容器,用于存储键值对(key-value pairs)。map 容器中的元素是按照键的顺序自动排序的,这使得它非常适合需要快速查找和有序数据的场景。定义和特性 键值对:map 存储的是键值对,其中每个键都是唯一的。排序:map 中的元素按照键的顺序自动排序,通常是升序。唯一性:每个键在 map 中只能出现一次。双向迭代器:map 提供了双向迭代器,可以向前和向后遍历元素。 基本语法包含头文件:#include 声明 map 容器:std::map<key_type, value_type> myMap; key_type 是键的类型。value_type 是值的类型。 插入元素:myMap[key] = value;访问元素:value = myMap[key];遍历 map:for (std::map<key_type, value_type>::iterator it = myMap.begin(); it !=...
C++ 容器类 <list>
C++ 容器类 C++ 标准库提供了丰富的功能,其中 是一个非常重要的容器类,用于存储元素集合,支持双向迭代器。 是 C++ 标准模板库(STL)中的一个序列容器,它允许在容器的任意位置快速插入和删除元素。与数组或向量()不同, 不需要在创建时指定大小,并且可以在任何位置添加或删除元素,而不需要重新分配内存。语法以下是 容器的一些基本操作: 包含头文件:#include 声明列表:std::list mylist;,其中 T 是存储在列表中的元素类型。插入元素:mylist.push_back(value);删除元素:mylist.pop_back(); 或 mylist.erase(iterator);访问元素:mylist.front(); 和 mylist.back();遍历列表:使用迭代器 for (auto it = mylist.begin(); it != mylist.end(); ++it)特点 双向迭代: 提供了双向迭代器,可以向前和向后遍历元素。动态大小:与数组不同,...
C++ 容器类 <array>
C++ 容器类 C++11 标准引入了 头文件,它提供了一种固定大小的数组容器,与 C 语言中的数组相比,具有更好的类型安全和内存管理特性。std::array 是 C++ 标准库中的一个模板类,它定义在 头文件中。std::array 模板类提供了一个固定大小的数组,其大小在编译时确定,并且不允许动态改变。语法std::array 的基本语法如下:#include std::array<T, N> array_name; T 是数组中元素的类型。N 是数组的大小,必须是一个非负整数。 声明与初始化 需要在编译时确定大小,不能动态改变。使用示例:#include #include int main() { std::array<int, 5> arr = {1, 2, 3, 4, 5}; // 声明一个定长为5的int数组 return 0;}特点 类型安全:std::array 强制类型检查,避免了 C...
C++ 容器 <forward_list>
C++ 容器 C++ 标准库中的 是一种容器,它提供了一种单向链表的数据结构。与双向链表(std::list)不同,std::forward_list 只支持单向遍历。它适用于需要频繁进行前向遍历和插入、删除操作的场景。以下是对 std::forward_list 的详细说明:单向链表: std::forward_list 是单向链表,只能从前往后遍历,不能反向遍历。由于其单向链表的结构,插入和删除操作在已知位置的情况下非常高效(O(1) 复杂度)。 低内存开销: 与 std::list 相比,std::forward_list 只需要一个指向下一个节点的指针,节省了内存。 不支持随机访问: 不支持通过索引访问元素,不能使用 operator[] 或 at 方法,只能通过迭代器进行访问。 语法std::forward_list 是 C++ 标准库中的一个模板类,定义在 头文件中。它使用模板参数 T 来指定存储在列表中的元素类型。以下是 std::forward_list 的基本语法:#include std::forward_list...
C++ 实例
C++ 实例 C++ 实例 - 输出 “Hello, World!” C++ 实例 - 标准输入输出C++ 实例 - 输出换行C++ 实例 - 实现两个数相加C++ 实例 - 创建不同类型的变量C++ 实例 - 求商及余数C++ 实例 - 查看 int, float, double 和 char 变量大小C++ 实例 - 交换两个数C++ 实例 - 判断一个数是奇数还是偶数C++ 实例 - 判断元音/辅音C++ 实例 - 判断三个数中的最大数C++ 实例 - 求一元二次方程的根C++ 实例 - 计算自然数之和C++ 实例 - 判断闰年C++ 实例 - 求一个数的阶乘C++ 实例 - 创建各类三角形图案C++ 实例 - 求两数的最大公约数C++ 实例 - 求两数最小公倍数C++ 实例 - 实现一个简单的计算器猴子吃桃问题