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

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

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的同学,并且可以提高个人对于数据结构、算法等的编码能力。

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

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/920743.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-16
下一篇 2022-05-16

发表评论

登录后才能评论

评论列表(0条)

保存