STL

1、STL概念:标准模板库

STL从广义上分为:容器、算法、迭代器。其中容器与算法之间通过迭代器进行无缝连接。

STL 几乎所有的代码都采用了模板类或者模板函数

2、STL六大组件:容器、算法、迭代器、仿函数、适配器、空间配置器

2.1、

(1)容器:各种数据结构,如vector、list、deque、set、map等,用来存放数据

(2)算法:各种常用算法,如sort、find、copy、for_each等

(3)迭代器:扮演了容器与算法之间的胶合剂

(4)仿函数:行为类似函数,可作为算法的某种策略

2.2 STL中容器、算法、迭代器

容器:置物之所也

STL容器就是将运用最广泛的一些数据结构实现出来

常用的数据结构:数组、链表、树、栈、队列、集合、映射表等

这些容器分为序列式容器和关联式容器两种:

序列式容器:强调值的排序,序列式容器中的每个元素均有固定的位置。

关联式容器:二叉树结构,各元素之间没有严格的物理上的顺序关系。

算法:问题之解法也

有限的步骤,解决逻辑或数学上的问题,这一门学科我们叫做算法(Algorithms)

算法分为:质变算法和非质变算法

质变算法:是指运算过程中会更改区间内的元素的内容。例如拷贝,替换,删除等等。

非质变算法:是指运算过程中不会更改区间内的元素内容,例如查找、计数、遍历、寻找极值等等。

迭代器:容器和算法之间的粘合剂

提供一种方法,使之能够依序访问某个容器所含的各个元素,而又无需暴露该容器的内部表示方式。

每个容器都有自己专属的迭代器

迭代器的使用非常类似于指针,初学阶段,我们可以先理解迭代器为指针

3、string 容器

3.1 基本概念

本质:string 是c++风格的字符串,而string本质上是个类

string 和 char *的区别

(1)、char *是一个指针

(2)、string是一个类,类内部封装了char*,管理这个字符串,是一个char*型的容器。

特点:

string类内部封装了很多成员方法

例如:查找--find,拷贝--copy,删除--delete,替换--replace,插入--insert

string管理char * 所分配 的内存,不用担心复制越界和取值越界等,由类内部进行负责

3.2  string构造函数

构造函数原型:

(1)、string();//创建一个空字符串  例如:string str;

(2)、string(const char * s);//使用字符串s初始化

(3)、string(const string& str);//使用一个string 对象初始化另一个string 对象-----拷贝

(4)、string(int n,char c);//使用n个字符c初始化

4 vector容器

4.1基本概念

功能:vector数据结构和数组非常相似,也称为单端数组

vector与普通数组的区别:不同之处在于数组是静态空间,而vector可以动态扩展

动态扩展:

(1)并不是在原有空间之后接新空间,而是找更大的内存空间,然后将原数据拷贝新空间,释放原空间

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值