【有点狂的手撕STL】STL源码剖析精读 000

STL源码剖析精读

前言

通过刷题感受到了C++中STL的妙用,十分的想要提高自己对于STL的理解以及运用能力,因此开设此专栏,并希望能够带领大家一起感受C++中STL的魅力。

一、STL简介

STL(标准模板库,Standard Template Libarary)。身位C++标准库的重要组成部分,STL(标准模板库)是一个 可复用的组件库 ,也是一个保罗算法和数据结构的软件框架。
其中包括了算法(algorithm)、容器(container)、迭代器(iterator)。

二、初识STL

在LeetCode刷题过程中,想必点开过C++语言的模板的同学都会见过STL中的容器技术的内容比如vector string ,这些都是容器。
给一些从C语言转入C++的同学稍微介绍一下,在之后的阅读过程中我也会重新记录阅读体会与总结,所以已经可以使用C++刷题的同学可以跳过这一部分内容。
简单的介绍一下vector容器,这样C的同学就可以用vector容器去刷一些数组的题了:
vector容器的底层可以理解为数组,在我们使用的时候 vector vec 这样定义一个变量(也叫创建对象,vector就是一个类,不理解类的概念的同学可以把它当做C语言中的结构体,不过可以在其中写函数)。
好了,之前已经说过可以把vector容器理解为一个数组那么我就看一下下面这段代码:

#include
#include//使用vector容器需要包含此头文件
using namespace std;

int main(){

	//这样
	vector<int> vec(10);//这里和创建数组无异,注意是小括号,尖括号中是数据类型
	for(int i=0;i<vec.size();++i){//vec.size()是vector这个类中自带的求数组大小的函数
		int a;
		cin>>a;
		vec[i]=a;
	}
	
	//或者
	vector<int> nums;
	int a;
	while(cin>>a){
		nums.push_back(a);//vector容器下的函数,push_back方法,将push_back中传入的实参增加到容器的末尾
	}
	
	return 0;
}

根据我所写的注释,可以简单的了解vector容器作为数组的特性,以及自带的两个函数,使用这些,就可以使用C语言的写法在C++模板中对数组的题进行刷题了。

STL源码剖析:

术语及其大陆翻译与本书翻译

英文术语 大陆惯用译法 本书译法
adapter 适配器 配接器
argument 实参(实质参数) 引数
by reference 传参考,传地址 传址
by value 传值 传值
dereference 反引用,解参考(解引用) 提领
evaluate 评估,计算 评估,核定
instance 案例,实例 实体
instantiated 实例化 实体化,具体化
library 库,函数库 程序库
range 范围 区间(使用于STL时)
resolve 解析 决议
parameter 形参(形式参数) 参数
type 类型 型别

面向STL编程

这本书不适合C++初学者,不适合泛型技术初学者,或STL初学者,也不适合带领你学习OOP技术,STL和OOP并无什么联系。
想要学习STL的同学可以和我一起阅读此书,若是C语法基础仍然吃力,建议先学习其它内容,待学成归来再来看本专栏,必会受益匪浅。

天下大事,必作于细!

本专栏定位

可到英雄哥星球(暂时不招人了)获取本书电子版,有能力的同学建议购买正版书籍。
【有点狂的手撕STL】STL源码剖析精读 000_第1张图片

本专栏适合想要深入学习STL的同学,并且可以提高个人对于数据结构、算法等的编码能力。

好了接下来就让我们正式进入学习吧!

你可能感兴趣的:(c++,开发语言)