【C++】STL概览

1. 泛型编程GP与面向对象OOP

GP(Generic Programming)就是使用模板template为主要工具来编写程序。
OOP(Object-Oriented Programming)面向对象编程就是使用继承,利用虚函数实现的多态技术编写程序。
GP与OOP最大的区别就是
GP试图将datas和methods分开
OOP试图将datas和methods关联起来

2. C++ Standard Library vs. Standard Template Library

C++ Standard Library——C++标准库(包括STL,范围比STL大)
STL(Standard Template Library)——C++标准模板库(主要包括六大部件)
STL是泛型编程最成功的作品。
STL六大部件
容器(Containers)
分配器(Allocators)
算法(Algorithms)
迭代器(Iterators)
适配器(Adapters)
仿函数(Functors)

STL六大部件关系图
STL六大部件使用示例

3. 我们的目标:

level 0:使用C++标准库
level 1:了解C++标准库(胸中自有丘壑)
level 2:良好使用C++标准库
level 3:扩充C++标准库

4. C++头文件

STL主要以头文件的形式存在

使用C++的头文件的方式:(不带.h后缀名)

#include <vector>

使用C的头文件的方式:(可以带也可以不带,如果不带要在前面加“c”)

#include <cstdio>

或者

#include <stdio.h>

命名空间std(standard的缩写)

新式头文件内的组件都封装在叫做std的命名空间中,使用库函数或者组件式要显示声明使用std名字空间或者std空间中的某些组件:

using namespace std; //一次开放所有 (推荐)

或者

using std::cout; //一个一个的打开

旧式的头文件不包含在std命名空间内

5. C++标准库的版本

Visual C++系列
Dev C++ 5.11(使用的是GNU4.9.2版本)

linux下g++版本

6. 时间复杂度

7. “前闭后开”区间

【a, b】前闭后闭区间 a <= x <= b
【a, b)前闭后开区间 a <= x < b
(a, b)前开后开区间 a < x < b
标准库规定,STL所有容器的头尾指针满足前闭后开区间。即:
c.begin() —— 指向第一个元素
c.end() ——指向最后一个元素的下一个位置

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容