前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【C++】STL 标准模板库 ① ( STL 简介 | STL 基本概念 | STL 主要内容 )

【C++】STL 标准模板库 ① ( STL 简介 | STL 基本概念 | STL 主要内容 )

作者头像
韩曙亮
发布2023-11-09 09:55:49
4890
发布2023-11-09 09:55:49
举报
文章被收录于专栏:韩曙亮的移动开发专栏

一、STL 简介


1、STL 概念

C++ 语言 的 STL " 标准模板库 " 英文全称 " Standard Template Library " ,

STL 是一套强大的 C++ 库 , 其中包含了各种通用的 数据结构和算法 , 如 : 向量、列表、队列、排序等 ;

STL 是 C++ 标准的一部分 , 所有的 C++ 编译器 都应该支持该标准 ;

2、STL 主要内容

STL 的主要内容 :

  • 容器 : 存储数据的类 ; 向量 vector , 双端队列 deque , 表 list , 队列 queue , 堆栈 stack , 集合 set , 多重集合 multiset , 映射 map 和 多重映射 multimap 等 ; 不同的容器有不同的特性和用途 ;
    • 向量 vector : 可以 访问和修改任意元素 , 但在 序列尾部 进行 插入 和 删除时 , 具有常量时间复杂度 ;
    • 双端队列 deque : 与向量类似 , 不同之处是 双端队列可以 在序列头部 插入和删除 操作 , 具有常量时间复杂度 ;
    • 表 list : 对任意元素的访问与对两端的距离成正比,但对某个位置上插入和删除一个项的花费为常数时间
    • 集合 set : 元素不能重复的集合 ;
    • 多重集合 multiset : 元素可以重复的集合 ;
    • 映射 map : 存放键值对 , 一个键对应一个值 ;
    • 多重映射 multimap : 存放键值对 , 一个键对应多个值 ;
  • 算法 : 一组用于解决常见问题的有限步骤函数 , 在容器上执行一系列算法 , 例如 : sort,find,replace ;
  • 迭代器 : 封装了一个用来 遍历容器元素 的 指针 的类 ; 通过迭代器 , 可以顺序访问容器中的每个元素 , 而不改变容器中元素的位置 ;

常量时间复杂度 指的是在执行某个操作时 , 所花费的时间与输入规模无关 , 通常为 O(1) ;

二、STL 代码示例


在下面的代码中 , 使用了 STL 容器中的 vector 向量容器 ,

使用 sort 排序算法 对 vector 向量中的元素进行了排序 ;

使用 STL 容器中的 vector 向量容器需要导入 vector 头文件

代码语言:javascript
复制
#include "vector"  

使用 STL 算法需要导入 algorithm 头文件 ,

代码语言:javascript
复制
#include "algorithm" 

sort 排序算法将无序的

代码语言:javascript
复制
vector<int> v = { 4, 6, 3, 1, 5, 2 };

容器元素值 , 进行了排序 ;

代码示例 :

代码语言:javascript
复制
#include "iostream"
using namespace std;

// 使用 STL 容器中的 vector 向量容器需要导入的头文件
#include "vector"  
// 使用 STL 算法需要导入的头文件
#include "algorithm"  

int main() {

    // STL 容器 向量 vector
    vector<int> v = { 4, 6, 3, 1, 5, 2 };

    // 排序算法 : 使用 algorithm 中的 sort 函数对 vector 进行排序  
    sort(v.begin(), v.end());

    // 输出排序后的 向量 vector
    // 使用 for 循环遍历 vector 向量
    for (int i : v) {
        cout << i << endl;
    }
	
	// 控制台暂停 , 按任意键继续向后执行
	system("pause");

	return 0;
}

执行结果 : 1 2 3 4 5 6 请按任意键继续. . .

在这里插入图片描述
在这里插入图片描述
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-11-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、STL 简介
    • 1、STL 概念
      • 2、STL 主要内容
      • 二、STL 代码示例
      相关产品与服务
      容器服务
      腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档