菜单
×
   ❮     
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++ Vectors C++ List C++ Stacks C++ Queues C++ Deque C++ Sets C++ Maps C++ 迭代器 C++ 算法

C++ How To

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 是一个库,由不同的数据结构算法组成,用于有效地存储和操作数据。

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

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

最常见的数据结构是

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

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

示例

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

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

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

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

// 包含栈库
#include <stack>

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

以下是使用向量的示例,在我们包含 <vector> 库之后

示例

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

// 打印 vector 元素
for (string car : cars) {
  cout << car << "\n";
}
自己动手试一试 »

接下来的章节将解释每种数据结构的工作原理以及如何使用它们。


STL 的关键概念

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

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

在计算机科学中,数据结构和算法是相辅相成的。如果没有算法高效地搜索或操作数据结构,数据结构就没什么价值;如果没有数据结构可供操作,算法也几乎没什么价值。

在接下来的章节中,您将看到所有内容是如何相互关联的。



×

联系销售

如果您想将 W3Schools 服务用于教育机构、团队或企业,请发送电子邮件给我们
sales@w3schools.com

报告错误

如果您想报告错误,或想提出建议,请发送电子邮件给我们
help@w3schools.com

W3Schools 经过优化,旨在方便学习和培训。示例可能经过简化,以提高阅读和学习体验。教程、参考资料和示例会不断审查,以避免错误,但我们无法保证所有内容的完全正确性。使用 W3Schools 即表示您已阅读并接受我们的使用条款Cookie 和隐私政策

版权所有 1999-2024 Refsnes Data。保留所有权利。W3Schools 由 W3.CSS 提供支持