c++中stl入门之笨鸟先飞(一)

==装载连接—https://blog.csdn.net/piaoxuezhong/article/details/54348787
对于c语言已经学的出神入化的我,呃呃还是准备学习c++把从stl入手(Standard
Template Library)标准模板库,是一个具有工业强度的,高效的C++程序库,该库包含许多计算机科学领域所常用的基本数据结构和基本算法。为广大c++程序员提供了一个可扩展的应用框架,体现软件的可重用性。重要特点就是数据结构和算法分离。例如:由于STL中的sort()函数是完全通用的,你可以用它来操作任何数据集合,包括链表,容器和数组;
STL 更重要的特点是它不是面向对象的,主要依赖模板而不是OOP三要素,具有广泛通用的底层特性。内联函数的使用页使得代码短小高效。
从逻辑参层次来看,体现了泛型化程序设计的思想,引入诸多新名词:需求(requirement),概念(concept),模型(model),容器(contain),算法和迭代子(lterator)。

STL内容介绍:
六i大组件:容器:一种数据结构,如list,vector和dequws,以模板类的方法提供。为了访问容器中的数据,可以使用容器输出的迭代器。
------------------好吧 他喵的作为一个菜鸡查了一下很多不懂得东西又引出了一大堆坑-----23333333------------咋办------补呗----------------------------------------------------------

容器库----装载连接---------https://zh.cppreference.com/w/cpp/container
容器库就是类模板与算法汇集,允许程序员简单访问常见得数据结构有三类容器:顺序容器,关联容器和无序关联容器,每种都被设计为支持不同组得操作。
容器管理为其他元素分配得存储空间,并提供直接或间接得迭代器(拥有类似指针属性得对象)访问他们得函数。大多数容器拥有至少几个常见的成员函数,并共享功能。
顺序容器:顺序按照访问的数据结构
1)array 静态连续数组
2)vector动态连续数组
deque双端队列
list双链表
关联容器(实现能快速查找()logn复杂度的数据结构
1)set唯一键的集合,按照键排序
2)map键值对的集合
无序关联容器实现快速查找均摊O1最坏On的无序哈希数据结构

容器适配器(提供顺序容器的不同接口)
stack 提供栈
queue 提供队列

---------------------好接下来了解一下什么是C++泛型基础------博客:xinzheng_wang---------https://blog.csdn.net/xinzheng_wang/article/details/6674847
fan\泛型的基本思想:
泛型编程时一种语言机制,通过它可以实现一个标准的容器库。像类一样,泛型也是一种抽象数据类型,但是泛型不属于面向对象,它是面向对象的补充和发展。在面向对象编程中,例如对栈的描述
class stack
{
push(参数类型)//入栈算法
pop(参数类型—)//出战算法
}
如果吧按上面的伪代码看作算法描述。没问题,因为算法与参数类型无关,但是如果把它写成编译的源代码,就必须指明是什么类型,否则无法通过编译。使用重载可以解决这个问题但是很麻烦。
这样我们可以首先指定一种通用的类型T,不具体指明是哪一种类型

class Stack<参数模板 T>
{
push(T)
pop(t)
}
这里的参数模板T详单与一个占位符,但我们实例化stack时T会被具体的数据类型替换掉。泛型在C++中主要体现为模板函数和模板类。
函数模板的性质:
1.不是正真的函数,只是C++编译生成具体函数的一个模子
2.函数模板本身并不生成函数,实际生成的函数是替换函数模板的哪个函数,这种替换编译期就绑定了
3.函数模板为每一种替换它的函数编译一份
4)函数模板不允许自动类型转换
5)函数模板不可以设置默认模板实参
但是模板类就可以设置默认模板实现。
**STL广义上分为3大类:算法,容器和迭代器。用了模板类和模板函数的方式,这相比于传统的由函数和类组成的库来说提供了更好的代码重用的机会。在C++标准中,STL被组织为下面的13个头文件
1)算法(algorithm)
听过了大约100个实现算法的模板函数,《algorithm>是所有STL头文件最大的一个,它由一大堆模板函数组成。
2)容器(container)又称为集合(collection)
3)迭代器是一种允许程序员检查容器内元素,并实现元素遍历的数据结构。迭代器类型提供比下表操作更一般化的方法,c
++chengxu1更倾向于使用迭代器。迭代器是STL最基本的部分,起一种粘合的作用。主要由头文件1贯穿使用STL中的几个模板的声明2。提供迭代器的使用的许多方法3.为容器中元素分破内存空间,同时为某些算法执行期间长生的临时对象提供机制

你可能感兴趣的:(c++中stl入门之笨鸟先飞(一))