Menu
×
   ❮     
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

C++ 教程

C++ 主页 C++ 简介 C++ 入门 C++ 语法 C++ 输出 C++ 注释 C++ 变量 C++ 用户输入 C++ 数据类型 C++ 运算符 C++ 字符串 C++ 数学 C++ 布尔值 C++ If...Else C++ Switch C++ While 循环 C++ For 循环 C++ Break/Continue C++ 数组 C++ 结构体 C++ 枚举 C++ 引用 C++ 指针

C++ 函数

C++ 函数 C++ 函数参数 C++ 函数重载 C++ 范围 C++ 递归

C++ 类

C++ OOP C++ 类/对象 C++ 类方法 C++ 构造函数 C++ 访问修饰符 C++ 封装 C++ 继承 C++ 多态 C++ 文件 C++ 异常 C++ 日期

C++ 数据结构

C++ 数据结构 & STL C++ 向量 C++ 列表 C++ 栈 C++ 队列 C++ 双端队列 C++ 集合 C++ 映射 C++ 迭代器 C++ 算法

C++ 如何

C++ 加两个数字 C++ 随机数

C++ 参考

C++ 参考 C++ 关键字 C++ <iostream> C++ <fstream> C++ <cmath> C++ <string> C++ <cstring> C++ <ctime> C++ <vector> C++ <algorithm>

C++ 示例

C++ 示例 C++ 现实生活中的例子 C++ 编译器 C++ 练习 C++ 测验 C++ 证书


C++ 数据结构和 STL


数据结构

数据结构用于存储和组织数据。一个 数组 是一个数据结构的例子,它允许在单个变量中存储多个元素。

C++ 还包含许多其他的数据结构,每一种都用于以不同的方式处理数据。

这些是 C++ STL 的一部分,STL 代表标准模板库。


C++ STL

STL 是一个库,它包含不同的 **数据结构** 和 **算法**,可以有效地存储和操作数据。

如果我们说数据结构存储数据,那么我们可以说算法用于解决不同的问题,通常是通过搜索和操作这些数据结构。

使用正确的数据结构和算法可以使你的程序运行得更快,尤其是在处理大量数据时。

最常见的数据结构是

数据结构 描述
向量 数组 一样存储元素,但可以动态改变大小。添加和删除元素通常在末尾进行。可以通过索引访问元素。
列表 按顺序存储元素,每个元素都与下一个元素相连。可以在两端添加和删除元素。不能通过索引访问。
按照特定顺序存储元素,称为 LIFO(后进先出),元素只能从顶部添加和删除。不能通过索引访问。
队列 按照特定顺序存储元素,称为 FIFO(先进先出),元素在末尾添加,从头部删除。不能通过索引访问。
双端队列 在双端队列中存储元素,元素可以在两端添加和删除。可以通过索引访问元素。
集合 存储唯一的元素。不能通过索引访问。
映射 以“键/值”对的形式存储元素。可以通过键(而不是索引)访问。

使用哪一个取决于你的具体需求。它们有一个共同点,那就是你必须包含相应的头文件才能使用它们。

示例

// 包含向量库
#include <vector>

// 包含列表库
#include <list>

// 包含集合库
#include <set>

// 包含映射库
#include <map>

// 包含栈库
#include <stack>

// 包含队列库
#include <queue>

以下是在包含了 <vector> 库之后使用向量的例子

示例

// 创建一个名为 cars 的向量,它将存储字符串
vector<string> cars = {"Volvo", "BMW", "Ford", "Mazda"};

// 打印向量元素
for (string car : cars) {
  cout << car << "\n";
}
试一试 »

后面的章节将解释每个数据结构的工作原理以及如何使用它们。


STL 的关键概念

STL 的关键组成部分包括 **容器**、**迭代器** 和 **算法**,以及它们之间的关系。

  • **容器** 是数据结构,它们提供了一种存储数据的方式,例如 向量列表 等。
  • **迭代器** 是用于访问数据结构元素的对象。
  • **算法** 包括函数,例如 sort()find(),它们通过 **迭代器** 对数据结构执行操作。

在计算机科学中,数据结构和算法是密不可分的。如果没有使用算法来有效地搜索或操作数据结构,那么数据结构就没有什么价值,而如果没有数据结构,算法也没有什么价值。

在接下来的章节中,您将看到所有这些是如何联系在一起的。



×

Contact Sales

If you want to use W3Schools services as an educational institution, team or enterprise, send us an e-mail:
[email protected]

Report Error

If you want to report an error, or if you want to make a suggestion, send us an e-mail:
[email protected]

W3Schools is optimized for learning and training. Examples might be simplified to improve reading and learning. Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness of all content. While using W3Schools, you agree to have read and accepted our terms of use, cookie and privacy policy.

Copyright 1999-2024 by Refsnes Data. All Rights Reserved. W3Schools is Powered by W3.CSS.