【知识点】深入浅出STL标准模板库

打印 上一主题 下一主题

主题 877|帖子 877|积分 2631

前几天谈论了许多关于数论和数据结构的东西,这些内容可能对初学者而言比较晦涩难懂(究竟是属于初高等算法/数据结构的范畴了)。今天计划来讲一些简单的内容 - STL 标准模板库。
STL 标准模板库

C++ 标准模板库 (Standard Template Library, STL),是 C++ 语言非常重要的一个构成部分。它提供了一组通用的类和函数,用于实现一些数据结构和算法。STL 主要包罗以下五个部分:

  • 容器 (Containers):STL 提供了不同的容器来供开辟者根据所必要维护数据来选择存储。
  • 算法 (Algorithms):STL 提供了许多通用算法,用于排序、搜索、复制、修改等操作。
  • 迭代器 (Iterators):STL 迭代器的作用是遍历容器元素的对象。
  • 函数对象 (Function Objects):这是一种行为类似于函数的对象(由于不太常见,因此本篇文章将不会详细讲解 STL 中的函数对象)。
  • 适配器 (Adapters):STL 的适配器用于修改容器、迭代器或函数对象的接口。为方便起见,容器适配器将会与容器部分一同讲解。
综上所述,本文将会主要围绕 容器、算法和迭代器这三者来展开叙述。本文只会论述一些相对常见的模板/方法,部分生僻的内容还请各位自行上网搜索。
容器 Containers

STL 容器还可以被细分成三个类别,分别是 序列式容器 (Sequence Containers)关联式容器 (Associative Containers)无序关联式容器 (Unordered Associative Containers)
序列式容器 (Sequence Containers) 与常见容器适配器。

  • vector 向量容器:向量容器可以被理解为我们常说的动态数组。与普通数组不同的是,动态数组的大小可以在运行过程中更改,并且用户可以任意地在此数组的末端添加数据。它的优点是支持快速随机访问和在末端插入删除元素。向量容器的根本使用方法如下:
[code]#include #include   // 引入头文件using namespace std;int main(){    // 创建一个整数范例,名为 vec 的向量容器,初始存放了数字1-5。    vector vec = {1, 2, 3, 4, 5};        vec.push_back(6);  // 向容器末端添加一个元素6。    vec.size();  // 获取容器的大小,即容器内元素的个数。    vec.resize(10);  // 动态更改容器的大小,将容器的大小设置为10。    // 通过 for 循环对容器举行遍历:    for (int i=0; i
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

不到断气不罢休

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表