C++ STL标准模板库
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标准模板库相关推荐
- 补8-5日复习内容 STL 标准模板库的容器
//有关 STL 标准模板库的函数 /* string 的 */ /* #include <iostream> #include <string> #include <w ...
- stl标准模板库_C ++标准模板库(STL)中的array :: fill()
stl标准模板库 fill() is a member function of "array container", which sets a given value to all ...
- stl标准模板库_C ++标准模板库(STL)中的数组及其常用功能
stl标准模板库 "array" is a container in C++ STL, which has fixed size, which is defined in &quo ...
- C++的STL标准模板库思维导图
STL标准模板库思维导图 C++ 语言的核心优势之一就是便于软件的重用.C++ 中有两个方面体现重用: 一是面向对象的继承和多态机制: 二是通过模板的概念实现了对泛型程序设计的支持. C++ 的标准模 ...
- stl标准模板库_如何在C ++ STL(标准模板库)中使用Pair
stl标准模板库 In this article, we'll take a look at using pair in C++ Standard Template Library (STL). 在本 ...
- STL 标准模板库—容器部分【C++】
STL标准模板库 包含内容: 容器类:vector.list.deque.set.map等 迭代器:"泛型指针",每个容器都有自己的迭代器,[vector和deque的迭代器是随机 ...
- 19.3 C++STL标准模板库大局观-容器的说明和简单应用例续
19.1 C++STL标准模板库大局观-STL总述.发展史.组成与数据结构谈 19.2 C++STL标准模板库大局观-容器分类与array.vector容器精解 19.3 C++STL标准模板库大局观 ...
- 信息学奥赛中的STL(标准模板库)--2022.09.30
1.信息学奥赛一本通 第5版 第8章 C++实用技巧与模版库(6节) 第一节 排序算法 第二节 运算符重载 第三节 字符串(string) 第四节 FIFO队列和优先队列 第五节 动态数组 第六 ...
- 19.1 C++STL标准模板库大局观-STL总述、发展史、组成与数据结构谈
19.1 C++STL标准模板库大局观-STL总述.发展史.组成与数据结构谈 19.2 C++STL标准模板库大局观-容器分类与array.vector容器精解 19.3 C++STL标准模板库大局观 ...
- 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 ...
最新文章
- MySQL单机多实例-主主复制
- iframe引用页面中的js操作父窗口标签
- php 可以做pc客户端吗,vue.js能做pc端吗
- Can't access RabbitMQ web management interface after fresh install
- centos7查看当前系统时间、_CentOS7.4.1708查看系统相关信息及系统的初步优化
- JavaWeb学习总结(五十)——文件上传和下载
- ubuntu小企鹅输fcitx入法乱码问题
- 2020-2021家居行业年度盘点与趋势洞察
- 玩转 SpringBoot 2.x 之 RedisTemplate 操作
- 旷视Face++回清华求教AI本质创新,姚期智授2锦囊,出任首席顾问
- Java多线程(四)——多线程数据隔离与共享
- System.ComponentModel.Win32Exception (0x80004005):拒绝访问。——解决办法
- 安卓rom制作教程_【ROM消息】Simplicity官改:MIUI11 9.12.14全机型更新
- crmeb重新安装_CRMEB
- Maven打包失败:程序包XXX不存在
- web前端网页制作思路(只是思路)
- 边境的悍匪—Kaggle—泰坦尼克号生还预测详细教程
- Ubuntu解决文件带锁问题
- 删除gluster volume数据报错:no space left
- FlexiTimer2库下载 无偿 分享 仅供学习
热门文章
- form表单无刷新提交文件(iframe)
- Linux常用指令---快捷键
- 编码、解码Html代码
- 38、C++ Primer 4th笔记,特殊工具与技术,嵌套类
- 退出功能—session
- 7.2Python入门(三)
- MySQL 5.7--多源复制(非GTID模式)
- [MYSQL]如何并发查询并更新
- Angular 小试牛刀[2]:CI(travie+firebase)
- Codeforces Round #341 (Div. 2)