STL 基本概念

STL 基本概念

STL(Standard Template Library,标准模板库)是惠普实验室开发的一系列软件的统称。现在是一个C++软件库,也是C++标准程序库的一部分,但在被引入C++之前该技术就已经存在了很长的一段时间。

STL的代码从广义上讲分为三类:algorithm(算法)、container(容器)和iterator(迭代器),几乎所有的代码都采 用了模板类和模版函数的方式,这相比于传统的由函数和类组成的库来说提供了更好的代码重用机会。在C++标准中,STL被组织为下面的13个头文 件:<algorithm>、<deque>、<functional>、<iterator>、<vector>、<list>、<map>、<memory>、<numeric>、<queue>、<set>、<stack> 和<utility>。

STL详细的说六大组件
        – 容器(Container)
        – 算法(Algorithm)
        – 迭代器(Iterator)
        – 仿函数(Function object)
                (就是使一个类的使用看上去象一个函数。其 实现就是在类中实现一个operator(),这个类就有了类似函数的行为,就是一个仿函数类了)
        – 适配器(Adaptor)
                (适配器是使一事物的行为类似于另一事物的行为的一种机制) (包括容器适配器、迭代器适配器和函数适配器)
        – 空间配制器(allocator)

时间: 2024-11-05 16:10:42

STL 基本概念的相关文章

【C/C++学院】0828-STL入门与简介/STL容器概念/容器迭代器仿函数算法STL概念例子/栈队列双端队列优先队列/数据结构堆的概念/红黑树容器

STL入门与简介 #include<iostream> #include <vector>//容器 #include<array>//数组 #include <algorithm>//算法 using namespace std; //实现一个类模板,专门实现打印的功能 template<class T> //类模板实现了方法 class myvectorprint { public: void operator ()(const T &

C++ 提高3 STL基本概念 string 迭代器 容器

STL 基本概念 vector数组基本数据类型操作 vector数组复杂数据类型操作 vector数组指针数据类型操作 string 字符串的初始化: string的 遍历之 for string的 遍历之迭代器 string的 遍历 之 at() string的 遍历 [] string的 遍历 [] 与 at()对比 string指针与string转换 : s1===>char * string指针与string转换 : char *====>sting string指针与string转换

&lt;&lt;C++标准程序库&gt;&gt;中的STL简单学习笔记

0. 内容为个人学习笔记, 仅供参考, 如有错漏, 欢迎指正! 1. STL中的所有组件都是由模板构成的, 所以其元素可以是任意型别的. 组件有: - 容器: 管理某类对象的集合. 不同的容器有各自的优缺点. - 迭代器: 用来在一个对象集群(Collection of Objects) 的元素上进行遍历. 这个CoB可以是容器/容器的一部分. 每种容器都提供了自己的迭代器. - 算法(Algorithm): 用来处理集群内的元素(比如: 查询,修改,排序等). - 适配器(adapter) -

stl中的容器、迭代器和算法----vector中的find实现

来源 http://blog.csdn.net/huangyimin/article/details/6133650 stl包括容器.迭代器和算法: 容器 用于管理一些相关的数据类型.每种容器都有它的优缺点,不同的容器反映出程序设计的不同需求.容器自身可能由数组或链表实现,或者容器中的每个元素都有特殊的关键值. 迭代器 用于遍历一个数据集中的每个元素.这些数据集可能是容器或者容器的子集.迭代器的主要优点是它们为任意类型的容器提供一个小巧并且通用(注意通用很重要)的接口.例如,迭代器接口的一个操作

浅谈C++ STL queue 容器

浅谈C++ STL queue 容器 本篇随笔简单介绍一下\(C++STL\)中\(queue\)容器的使用方法和常见的使用技巧.\(queue\)容器是\(C++STL\)的一种比较基本的容器.我们在学习这个容器的时候,不仅要学到这个容器具体的使用方法,更要从中体会\(C++STL\)的概念. queue容器的概念 \(queue\)在英文中是队列的意思.队列是一种基本的数据结构.而\(C++STL\)中的队列就是把这种数据结构模板化了.我们可以在脑中想象买票时人们站的排队队列.我们发现,在一

STL常见用法

1.选择C++刷算法的理由 1.C++速度快(C不是更快么,java太慢了) 2.C++有STL(什么是STL)--使用很方便的类库 3.如何使用STL进行高效刷算法 4.好处:刷算法,学习成本极低 5.如何从C到C++(仅基础语法到刷算法程度) 俗话说:磨刀不误砍柴工 不会c++仍然可以做,但是效率低 2.输入输出 C++保留了C的scanf和printf,增加了额外的cin与cout 例子 2.1.C程序中输入输出 int a; scanf("%d",&a); printf

STL 常用方法

1. 选择 C++ 刷算法的理由 1.C++ 速度快(C 不是更快吗,Java 太慢了) 2.C++ 有 STL(什么是 STL)--性能强大,使用方便的标准库 3.如何使用 STL 进行高效刷算法 4.好处:刷算法,学习成本低 5.如何从 C 到 C++(仅基础语法到刷算法程度) 俗话说:磨刀不误砍柴工,不会 C++ 仍然可以刷算法,但是效率相对很低.在 ACM 或各类程序算法竞赛中相比于 Java 代码的冗长,C 的繁琐,Python 的性能低下,C++ 以兼顾简洁和高效脱颖而出. 2. 输

《超越C++标准库:Boost库导引》:序

序(Foreword) C++社区正在发生着一些美妙的事情.尽管C++仍然是世界上使用最广泛的编程语言,它依旧在变得更加强大而且易用.不信么?容我慢慢道来. 当前版本的标准C++是在1998年最终确定下来的,它为传统的过程式编程(procedural programming)以及面向对象和泛型编程(generic programming)提供了强有力的支持.正如老的(1998年以前的)C++单枪匹马地把面向对象引入软件开发者日常工作可及的范围那样,C++98针对泛型编程做了同样的事情.1990年

STL概念

一.STL中的基本的概念容器: 可容纳各种数据类型的通用数据结构,是类模板迭代器: 可用于依次存取容器中元素,类似于指针算法: 用来操作容器中的元素的函数模板 int array[100];该数组就是容器,而 int * 类型的指针变量就可以作为迭代器, sort算法可以作用于该容器上,对其进行排序:sort(array,array+70); //将前70个元素排序 二.容器可以用于存放各种类型的数据( 基本类型的变量,对象等)的数据结构,都是类模版,分为三种:1)顺序容器vector, deq