C++中标准模板库STL基本概念
0. 前言
C++语言的一大优势就是便于软件的重用,而重用体现在两方面:
1. 面向对象思想:继承和多态,标准类库
2. 泛程序设计(Generic Programming)思想:模板机制,标准模板库STL(Standard Template Library)。简单来说就是使用模板的程序设计方法。
标准模板库STL就是常用的数据结构和算法的模板的集合,写成模板之后,不管以后放什么对象,就不用重新写数据结构和算法了:
- 数据结构:比如链表、数组、二叉树
- 算法:比如排序、查找
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基本概念相关推荐
- C++标准模板库(STL)的概念
STL(Standard Template Library)标准模板库是 C++ 标准库中的一部分,标准模板库为 C++ 提供了完善的数据结构及算法. STL 标准模板库包括三部分:容器.算法和迭代器 ...
- 标准模板库STL(Standard Template Library)
标准模板库STL(Standard Template Library)指南 /*刘振飞liuzf@pku.org.cn 1999-10-20*/ / *版权所有 (C) 1999-2004 刘振飞li ...
- 蓝桥杯算法竞赛系列第0章——蓝桥必考点及标准模板库STL(上)(万字博文,建议抱走)
欢迎来到:遇见蓝桥遇见你,不负代码不负卿! 目录 一.蓝桥必考点剖析 二.什么是STL 三.vector的常见用法详解 1.vector的定义 2.vector容器内元素的访问 (1).通过下标访 ...
- C++ ——模板 标准模板库STL
C++ 知识基础 流操作符 类 & 基础 初始化和重载 类 & 高级 继承和多态 模板 & 标准模板库STL 目录 C++ 一.模板 1.函数模板 2.类模板 二.标准模板库S ...
- C++ 标准模板库 STL 概述
泛型程序设计 C++ 的特点: C++ 的核心优势之一就是便于软件重用,而软件的重用在 C++ 中主要体现在以下两个方面: 面向对象的思想:继承.多态和标准类库 泛型程序设计的思想:模板机制和标准 ...
- C++ 标准模板库(STL)
C++ 标准模板库(STL) C++ STL (Standard Template Library标准模板库) 是通用类模板和算法的集合,它提供给程序员一些标准的数据结构的实现如 queues(队列) ...
- c++标准模板库STL【快速查找】【最全】【常用】【语法】
c++标准模板库STL[快速查找][最全][常用][语法] c标准模板库STL快速查找最全常用语法 vector- 变长数组 set-内部自动有序且不含重复元素 ...
- c语言stl模板,c/c++开发分享C++ 标准模板库 STL 顺序容器详解
c++ 标准模板库 stl 顺序容器 容器 顺序性 重复性 支持迭代器 vector 动态数组 无序 可重复 随机访问迭代器 deque 双向队列 无序 可重复 随机访问迭代器 list 双向链表 无 ...
- 13 标准模板库STL【C++】
13 标准模板库STL 13- 判断题 单选题 填空题 程序填空题 函数题 7-1 .查找电话号码 7-2 姓名排序 7-3 Score Processing 13+ 编程题 7-1 查找成绩并折算后 ...
最新文章
- 软件测试之功能测试详细过程
- Google收购安全分析软件厂商Zynamics
- python爬虫(4)--Cookie的使用
- Elasticsearch Curator使用
- 简述计算机控制系统调试和运行的过程,简述计算机原理与系统启动过程
- 中国喷墨卡片打印机行业市场供需与战略研究报告
- mysql关联查询语句
- Redis中什么是Big Key(大key)问题?如何解决Big Key问题?
- 2021年12月全国程序员薪资出炉,你的排哪里……
- 电脑蓝屏怎么办 七大原因及解决办法来帮你
- iOS超级签名系统源码及分析
- 制作rime配色的fcitx皮肤
- linux常用命令2
- FoodMart数据仓库mysql表及数据初始化及重度汇总脚本
- 启动子容器失败:A child container failed during start
- 学校计算机课用的ppt软件是什么,大学计算机课程课件.ppt
- iOS笔记059 - 网络总结
- 折腾win7:保护眼睛,修改资源管理器背景颜色 xp适用
- 快速了解ZigBee的协议栈
- 2023年最新qq空间说说怎么全部删除_QQ空间说说如何批量删除