0. 前言

C++语言的一大优势就是便于软件的重用,而重用体现在两方面:

1. 面向对象思想:继承和多态,标准类库
2. 泛程序设计(Generic Programming)思想:模板机制,标准模板库STL(Standard Template Library)。简单来说就是使用模板的程序设计方法。

标准模板库STL就是常用的数据结构算法的模板的集合,写成模板之后,不管以后放什么对象,就不用重新写数据结构和算法了:

  1. 数据结构:比如链表、数组、二叉树
  2. 算法:比如排序、查找

1.0 STL基本概念

主要包括三类:
1. 容器:可容纳各种数据类型的通用数据结构
2. 迭代器:类似于指针,可用于存取容器中的元素
3. 算法:用来操作容器中的元素的函数模板

2.0 容器概述

容器是用于存放各种数据类型的通用数据结构,主要分为三种,简单画了一个思维导图如下:

3.0 练手的一个例子

这个例子主要是关于容器的创建,加入元素,通过迭代器访问容器元素,并通过find()函数寻找某个元素,代码如下:

#include "pch.h"
#include <iostream>
#include<vector>
#include<algorithm>
using namespace std;
int main()
{//**正向迭代器**//vector<int> v;v.push_back(1); v.push_back(2); v.push_back(3); v.push_back(4);vector<int>::iterator p; //创建迭代器pfor (p = v.begin();p<v.end();p++)cout << *p << " ";cout << endl;//**反向迭代器**//vector<int>::reverse_iterator rp;for (rp = v.rbegin();rp < v.rend();rp++)        //rp++同样也是反向加cout << *rp << " ";cout << endl;//**find()函数应用**//vector<int>::iterator fp;fp = find(v.begin(), v.end(), 3);  //三个参数,开始和结束迭代器,寻找的元素值if (fp != v.end())cout << *fp << " Found!" << endl;else{cout << "Not Found!" << endl;}fp = find(v.begin() + 1, v.end() - 2, 4);        //原容器[1 2 3 4],现在容器[2,3)不包含3if (fp != v.end())cout << *fp << endl;      //找不到,返回最后迭代器对应值,即3}

C++中标准模板库STL基本概念相关推荐

  1. C++标准模板库(STL)的概念

    STL(Standard Template Library)标准模板库是 C++ 标准库中的一部分,标准模板库为 C++ 提供了完善的数据结构及算法. STL 标准模板库包括三部分:容器.算法和迭代器 ...

  2. 标准模板库STL(Standard Template Library)

    标准模板库STL(Standard Template Library)指南 /*刘振飞liuzf@pku.org.cn 1999-10-20*/ / *版权所有 (C) 1999-2004 刘振飞li ...

  3. 蓝桥杯算法竞赛系列第0章——蓝桥必考点及标准模板库STL(上)(万字博文,建议抱走)

    欢迎来到:遇见蓝桥遇见你,不负代码不负卿! 目录 ​ 一.蓝桥必考点剖析 二.什么是STL 三.vector的常见用法详解 1.vector的定义 2.vector容器内元素的访问 (1).通过下标访 ...

  4. C++ ——模板 标准模板库STL

    C++ 知识基础 流操作符 类 & 基础 初始化和重载 类 & 高级 继承和多态 模板 & 标准模板库STL 目录 C++ 一.模板 1.函数模板 2.类模板 二.标准模板库S ...

  5. C++ 标准模板库 STL 概述

    泛型程序设计 C++ 的特点: ​ C++ 的核心优势之一就是便于软件重用,而软件的重用在 C++ 中主要体现在以下两个方面: 面向对象的思想:继承.多态和标准类库 泛型程序设计的思想:模板机制和标准 ...

  6. C++ 标准模板库(STL)

    C++ 标准模板库(STL) C++ STL (Standard Template Library标准模板库) 是通用类模板和算法的集合,它提供给程序员一些标准的数据结构的实现如 queues(队列) ...

  7. c++标准模板库STL【快速查找】【最全】【常用】【语法】

    c++标准模板库STL[快速查找][最全][常用][语法] c标准模板库STL快速查找最全常用语法         vector- 变长数组         set-内部自动有序且不含重复元素     ...

  8. c语言stl模板,c/c++开发分享C++ 标准模板库 STL 顺序容器详解

    c++ 标准模板库 stl 顺序容器 容器 顺序性 重复性 支持迭代器 vector 动态数组 无序 可重复 随机访问迭代器 deque 双向队列 无序 可重复 随机访问迭代器 list 双向链表 无 ...

  9. 13 标准模板库STL【C++】

    13 标准模板库STL 13- 判断题 单选题 填空题 程序填空题 函数题 7-1 .查找电话号码 7-2 姓名排序 7-3 Score Processing 13+ 编程题 7-1 查找成绩并折算后 ...

最新文章

  1. 软件测试之功能测试详细过程
  2. Google收购安全分析软件厂商Zynamics
  3. python爬虫(4)--Cookie的使用
  4. Elasticsearch Curator使用
  5. 简述计算机控制系统调试和运行的过程,简述计算机原理与系统启动过程
  6. 中国喷墨卡片打印机行业市场供需与战略研究报告
  7. mysql关联查询语句
  8. Redis中什么是Big Key(大key)问题?如何解决Big Key问题?
  9. 2021年12月全国程序员薪资出炉,你的排哪里……
  10. 电脑蓝屏怎么办 七大原因及解决办法来帮你
  11. iOS超级签名系统源码及分析
  12. 制作rime配色的fcitx皮肤
  13. linux常用命令2
  14. FoodMart数据仓库mysql表及数据初始化及重度汇总脚本
  15. 启动子容器失败:A child container failed during start
  16. 学校计算机课用的ppt软件是什么,大学计算机课程课件.ppt
  17. iOS笔记059 - 网络总结
  18. 折腾win7:保护眼睛,修改资源管理器背景颜色 xp适用
  19. 快速了解ZigBee的协议栈
  20. 2023年最新qq空间说说怎么全部删除_QQ空间说说如何批量删除

热门文章

  1. JavaScript学习笔记 06、DOM元素—③定时器与延时器
  2. 王峻涛:垂直电子商务将有很大发展
  3. 【C语言进阶】指针(进阶2)
  4. 农产品电商如何做直播卖货?
  5. 优化网站性能的6种架构方案
  6. WSM ,BSM,SCI,DSRC
  7. 使用HFS+cpolar组合 低成本搭建NAS(1)
  8. 图像、图形、图片文件格式
  9. Winsock网络编程头文件及库文件的设置
  10. 东北大学acm暑期夏令营第七天