C++语法篇之STL库
1. STL介绍
STL是Standard Template Library的缩写,即标准模板库。之前在写 Templates 模板的时候,提到过STL对于模板的应用。STL是由多个模板类构成,能够为开发者提供通用的数据结构和算法。
STL主要包含以下内容:
- 容器 Container:用来管理某一类对象的集合。
- vector(可扩展的单向数组)
- deque(可扩展的双向数组)
- list (双向列表)
- sets(无序集合)
- maps:<Key, Value>
- 算法 Algorithm:对容器的内容执行初始化、排序、分类和搜索等操作。
- 迭代器 Iterators:用于遍历对象集合的元素。
STL能给我们带来哪些帮助呢?
- 减少开发时间。轮子已经被验证过了,学会使用轮子能大大节省开发时间。
- 提高代码可读性。使用同一个轮子能让同行更快读懂你的代码。
- 提高程序健壮性。STL的数据结构是自动增长的。
- 提高可移植性,可维护性等。
2. vector 示例
一个简单的vector示例:创建int类型的向量,并实现初始化、赋值和打印操作。
#include <iostream>
#include <vector>
using namespace std;int main()
{cout << "vector example:" << endl;// 创建一个int类型向量 xvector<int> x; // 创建一个包含100个元素的int类型向量 yvector<int> y(100);// 输出vector x的初始大小cout << "vector x size = " << x.size() <<endl;// 输出vector y的初始大小cout << "vector y size = " << y.size() <<endl;// 为向量x的前10个元素赋值for (int a = 0; a < 10; a++)x.push_back(a); // 在vector最后插入元素// 输出vector y扩展后的大小cout << "vector x size = " << x.size() <<endl;vector<int>::iterator p; // 使用迭代器访问 x 的值 cout << "all elements in x: ";for (p = x.begin(); p < x.end(); p++)cout << *p << " "; //依次输出每一个元素的值cout << endl;// 删除vector中第4个元素vector<int>::iterator pp = (x.begin()+3);cout << "before erase ";cout << "vector x[4] = " << *pp << endl; x.erase(pp);cout << "after erase ";cout << "vector x[4] = " << *pp << endl; return 0;
}
输出结果:
从上边的例子可以体现出vector的健壮性,vector是一个动态的数组模板,可以在程序运行过程中高效地添加或者删除元素,为程序设计提供了很大的灵活性。
最后,关于STL还有很多细节,待续吧。
C++语法篇之STL库相关推荐
- C++11 中STL库中新增内容
C++ 11一个比较显著的变化是以前boost库中的一些函数被正式标准化合入到STL中了,本文就简单的介绍一下. 引用包装器(Reference Wrapper) 当模板函数参数为泛型类型的时候,无法 ...
- c++中algorithm头文件、STL库简介及使用说明
c++中algorithm头文件.STL库简介及使用说明 c++中algorithm头文件是STL的算法部分,里边定义了各种算法,比如sort之类的.加上algorithm就可以使用stl库里的各种算 ...
- [c++]巧用stl库-啤酒与尿布
[c++]<-巧用stl库-> 啤酒与尿布 前言 大家好,楼主计算机专业大学狗一枚.<啤酒与尿布>是专业课的一道课后习题,觉得我个人思路比较新颖,在此分享.能力一般,水平有限, ...
- C/C++学习指南(语法篇) - 邵发
C/C++学习指南(语法篇),清华大学出出版,作者:邵发 ,ISBN: 9787302419891,一部C/C++基础语法教材,配套100集视频讲解,在线题库.官网:阿发你好 本书简介 一部C/C++ ...
- ①(语法篇)、《史上最全iOS八股文面试题》2022年,金三银四我为你准备了,iOS《1000条》笔试题以及面试题(包含答案)。带面试你过关斩将,(赶紧过来背iOS八股文)
iOS面试题 一共分为笔试题和面试题两部分 笔试题 一共分为10个 总共613题 面试题 一共400题 笔试题 一个10个系列 分别为 ①(语法篇) 共147题 已更新 ②(常识篇) 共72题 已更新 ...
- 例题5-3安迪的第一个字典 UVa10815--C++STL库映射set的应用
前言 不定期更新C++的STL库以及算法练习的笔记 分享给大家 也是督促自己不断努力学习算法与程序设计 学习算法之前,要想高效简洁的写好代码,还需要熟练掌握STL库的一些方法和数据结构 参考书籍: & ...
- STL库:stack和queue
STL库:stack和queue 文章目录 STL库:stack和queue 1.STL库中stack的官方介绍 2.stack的常用接口 3.stack的模拟实现 4.STL库中queue的官方介绍 ...
- C++17标准STL库并行策略在GCC编译器中的替代实现方法
C++17标准STL库并行策略在GCC编译器中的替代实现方法 严正声明:本文系作者davidhopper原创,未经许可,不得转载. 2019年8月5日更新: GCC 9.1.0可支持C++ 17标 ...
- Flex 布局教程:语法篇
阮一峰的网络日志 » 首页 » 档案 上一篇:ES6 的功能侦测库 下一篇:Flex 布局教程:实 分类: 开发者手册 Flex 布局教程:语法篇 作者: 阮一峰 日期: 2015年7月10日 网页布 ...
- C++常用基础知识—STL库(1)
本文介绍C++常用的STL库知识,常用的函数及其用法,为备战C++编程比赛的朋友及对STL库函数应用时的快速查找提供方便. 后续还会继续更新,请大家多多支持!!! STL简介 顺序性容器 2.1 C+ ...
最新文章
- TensorRT优化方案图例
- php数据 文本_php直接调用文本文件内容
- 用Handler的post()方法来传递线程中的代码段到主线程中执行
- 第四期 SA 分析师认证名单正式公布!
- gcc编译器_2020好用的C++编译器有哪些?这几款值得下载
- XStream将XML转换为JAVA对象快速指南
- Java 对象数组的定义与用法详解
- sklearn文本聚类分析
- Spring之事务管理与事务的传播特性
- android看视频掉帧,玩游戏看视频经常卡顿不顺畅?你只需这几步
- 【精华】超详细的Win10安装步骤,菜鸟福音
- bluehost中国和bluehost美国的区别?应该选择哪个?
- 解决VS编译生成的exe文件不能在其他电脑上运行的问题
- 《高效的秘密》第五,六章读后感
- 淘晶驰芯片AIHMI简介
- prometheus告警配置
- 上汽董事长称不接受与华为合作自动驾驶;曝OPPO给离职员工补发年终奖,此前遭克扣;Google Play 将启用AAB格式应用...
- oracle缺少有右括号,oracle ORA-00907错误:缺少右括号
- 服务器密码修改后数据库无法登录,关于 mysql5 改密码后不能登录问题的解答-数据库专栏,MySQL...
- 如何让你的android模拟器连接上你电脑的网络