C++ STL(标准模板库)

C++ STL(标准模板库)是一套功能强大的 C++ 模板类,提供了通用的模板类和函数,这些模板类和函数可以实现多种流行和常用的算法和数据结构,如向量、链表、队列、栈。

C++ 标准模板库的核心包括以下三个组件:

组件 描述
容器(Containers) 容器是用来管理某一类对象的集合。C++ 提供了各种不同类型的容器,比如 deque、list、vector、map 等。
算法(Algorithms) 算法作用于容器。它们提供了执行各种操作的方式,包括对容器内容执行初始化、排序、搜索和转换等操作。
迭代器(iterators) 迭代器用于遍历对象集合的元素。这些集合可能是容器,也可能是容器的子集。

例子:

#include <iostream>
#include <vector>
using namespace std;int main()
{// 创建一个向量存储 intvector<int> vec; int i;// 显示 vec 的原始大小cout << "vector size = " << vec.size() << endl;// 推入 5 个值到向量中for(i = 0; i < 5; i++){vec.push_back(i);}// 显示 vec 扩展后的大小cout << "extended vector size = " << vec.size() << endl;// 访问向量中的 5 个值for(i = 0; i < 5; i++){cout << "value of vec [" << i << "] = " << vec[i] << endl;}// 使用迭代器 iterator 访问值vector<int>::iterator v = vec.begin();while( v != vec.end()) {cout << "value of v = " << *v << endl;v++;}return 0;
}
复制代码

输出结果:

vector size = 0
extended vector size = 5
value of vec [0] = 0
value of vec [1] = 1
value of vec [2] = 2
value of vec [3] = 3
value of vec [4] = 4
value of v = 0
value of v = 1
value of v = 2
value of v = 3
value of v = 4
复制代码

关于上面实例中所使用的各种函数,有几点要注意:

  • push_back( ) 成员函数在向量的末尾插入值,如果有必要会扩展向量的大小。
  • size( ) 函数显示向量的大小。
  • begin( ) 函数返回一个指向向量开头的迭代器。
  • end( ) 函数返回一个指向向量末尾的迭代器。

C++ STL标准模板库相关推荐

  1. 补8-5日复习内容 STL 标准模板库的容器

    //有关 STL 标准模板库的函数 /* string 的 */ /* #include <iostream> #include <string> #include <w ...

  2. stl标准模板库_C ++标准模板库(STL)中的array :: fill()

    stl标准模板库 fill() is a member function of "array container", which sets a given value to all ...

  3. stl标准模板库_C ++标准模板库(STL)中的数组及其常用功能

    stl标准模板库 "array" is a container in C++ STL, which has fixed size, which is defined in &quo ...

  4. C++的STL标准模板库思维导图

    STL标准模板库思维导图 C++ 语言的核心优势之一就是便于软件的重用.C++ 中有两个方面体现重用: 一是面向对象的继承和多态机制: 二是通过模板的概念实现了对泛型程序设计的支持. C++ 的标准模 ...

  5. stl标准模板库_如何在C ++ STL(标准模板库)中使用Pair

    stl标准模板库 In this article, we'll take a look at using pair in C++ Standard Template Library (STL). 在本 ...

  6. STL 标准模板库—容器部分【C++】

    STL标准模板库 包含内容: 容器类:vector.list.deque.set.map等 迭代器:"泛型指针",每个容器都有自己的迭代器,[vector和deque的迭代器是随机 ...

  7. 19.3 C++STL标准模板库大局观-容器的说明和简单应用例续

    19.1 C++STL标准模板库大局观-STL总述.发展史.组成与数据结构谈 19.2 C++STL标准模板库大局观-容器分类与array.vector容器精解 19.3 C++STL标准模板库大局观 ...

  8. 信息学奥赛中的STL(标准模板库)--2022.09.30

    1.信息学奥赛一本通 第5版 第8章 C++实用技巧与模版库(6节) 第一节  排序算法 第二节 运算符重载 第三节  字符串(string) 第四节 FIFO队列和优先队列 第五节  动态数组 第六 ...

  9. 19.1 C++STL标准模板库大局观-STL总述、发展史、组成与数据结构谈

    19.1 C++STL标准模板库大局观-STL总述.发展史.组成与数据结构谈 19.2 C++STL标准模板库大局观-容器分类与array.vector容器精解 19.3 C++STL标准模板库大局观 ...

  10. C++ STL 标准模板库介绍与入门

    目录 1.概述 1.1.C++ 标准库 1.2.Boost库 2.STL 版本 2.1.HP 原始版本 2.2.P. J. 实现版本 2.3.RW 实现版本 2.4.SGI 实现版本 2.5.STLp ...

最新文章

  1. MySQL单机多实例-主主复制
  2. iframe引用页面中的js操作父窗口标签
  3. php 可以做pc客户端吗,vue.js能做pc端吗
  4. Can't access RabbitMQ web management interface after fresh install
  5. centos7查看当前系统时间、_CentOS7.4.1708查看系统相关信息及系统的初步优化
  6. JavaWeb学习总结(五十)——文件上传和下载
  7. ubuntu小企鹅输fcitx入法乱码问题
  8. 2020-2021家居行业年度盘点与趋势洞察
  9. 玩转 SpringBoot 2.x 之 RedisTemplate 操作
  10. 旷视Face++回清华求教AI本质创新,姚期智授2锦囊,出任首席顾问
  11. Java多线程(四)——多线程数据隔离与共享
  12. System.ComponentModel.Win32Exception (0x80004005):拒绝访问。——解决办法
  13. 安卓rom制作教程_【ROM消息】Simplicity官改:MIUI11 9.12.14全机型更新
  14. crmeb重新安装_CRMEB
  15. Maven打包失败:程序包XXX不存在
  16. web前端网页制作思路(只是思路)
  17. 边境的悍匪—Kaggle—泰坦尼克号生还预测详细教程
  18. Ubuntu解决文件带锁问题
  19. 删除gluster volume数据报错:no space left
  20. FlexiTimer2库下载 无偿 分享 仅供学习

热门文章

  1. form表单无刷新提交文件(iframe)
  2. Linux常用指令---快捷键
  3. 编码、解码Html代码
  4. 38、C++ Primer 4th笔记,特殊工具与技术,嵌套类
  5. 退出功能—session
  6. 7.2Python入门(三)
  7. MySQL 5.7--多源复制(非GTID模式)
  8. [MYSQL]如何并发查询并更新
  9. Angular 小试牛刀[2]:CI(travie+firebase)
  10. Codeforces Round #341 (Div. 2)