STL 六大部件

容器:(containers)

分配器(allocator)

迭代器(iterator)

时间: 2024-12-28 02:16:44

STL 六大部件的相关文章

C++ Primer 学习笔记_46_STL剖析(一):泛型程序设计、什么是STL、STL六大组件及其关系

一.泛型程序设计 1.泛型编程(generic programming):相同的逻辑和算法,对不同类型的数据进行处理 2.将程序写得尽可能通用 3.将算法从数据结构中抽象出来,成为通用的 4.C++的模板为泛型程序设计奠定了关键的基础 二.什么是STL 1.STL(Standard Template Library),即标准模板库,是一个高效的C++程序库. 2.包含了诸多在计算机科学领域里常用的基本数据结构和基本算法.为广大C++程序员们提供了一个可扩展的应用框架,高度体现了软件的可复用性 3

STL 六大组件, 功能与运用概要

1. 容器(constainers) 现成的模版形式的数据结构, 如 vector, deque, set, map... 主要用来存放数据; 2. 算法(algorithms) 我倾向于叫做泛型算法, 常见的有 sort, search, copy, erase... 主要用函数模板实现; 3. 迭代器(iterators) 虽然 C++ 是 C 的超集, 但是一个指针满天飞的 programer 从某种意义上来说不是一个好的 C++er. 迭代器主要扮演容器预算法间的媒介, 所谓的 "泛型指

STL 六大组件 功能与运用

STL 提供六大组件,彼此可以组合套用: 1 容器(containers):各种数据结构,如vector,list,deque,set,map,用来存放数据,从实现的角度来看,STL容器是一种class template,就体积而言,这一部分很像冰山在海角下的比率. 2 算法(algorithms):各种常用算法如:sort,search,copy,erase....从实现的角度来看,STL算法是一种function template. 3 迭代器(iterators):扮演容器与算法之间的胶合

STL六大组件之——分配器(内存分配,好深奥的东西)

SGI设计了双层级配置器,第一级配置器直接使用malloc()和free(),第二级配置器则视情况采用不同的策略:当配置区块超过128bytes时,视之为“足够大”,便调用第一级配置器:当配置区小于128bytes时,视之为“过小”,为了降低额外负担,便采用复杂的memory pool 整理方式,而不再求助于第一级配置器.整个设计究竟只开放第一级配置器,取决于_USE_MALLOC是否被定义: 1 #ifdef __USE_MALLOC 2 ... 3 typedef __malloc_allo

STL六大组件之——算法小小小小的解析

参考自侯捷的<stl源码剖析> stl算法主要分为非可变序列算法(指不直接修改其所操作的容器内容的算法),可变序列算法(指可以修改它们所操作的容器内容的算法),排序算法(包括对序列进行排序和合并的算法.搜索算法以及有序序列上的集合操作),数值算法(对容器内容进行数值计算). 1.非可变序列算法 stl中的非可变序列算法有:for_each(), find(), find_if(), adjacent_find(), find_first_of(), count(), count_if(), m

STL六大组件之——迭代器这个东西

迭代器:除了在其它语言中司空见惯的下标法访问容器元素之外,C++语言提供了一种全新的方法——迭代器(iterator)来访问容器的元素.迭代器其实类似于引用,指向容器中某一元素.换个方式来说,容器就是数据结构的泛指,迭代器就是指针的泛指,可以指向元素.容器相当于一个储藏柜,里面装的许多不同的物品就像是储存的元素,比如面包.啤酒.苹果.现金.要取得各个物体就得用与各个物体向匹配的工具,如取出面包要用盘子.取出啤酒要用杯子.取出苹果要用篮子.取出现金要用钱包.迭代器的作用就相当于取出物品的工具的抽象

STL标准库-迭代器

摘要: 摘要: 技术在于交流.沟通,本文为博主原创文章转载请注明出处并保持作品的完整性 本节主要介绍STL六大部件中的Iterators迭代器. 在语言方面讲,容器是一个class template, 算法是一个仿函数, 分配器class template, 迭代器是一个class template, 适配器class template, 分配器class template 从图中我们可以看出算法是看不到容器的,容器跟算法的交互必要用迭代器做桥梁,那么迭代器是怎样让容器和算法满足各自的需求的呢?

(一)STL体系结构基础介绍

一.STL六大部件 容器(Containers):存放元素,内存由分配器搞定 分配器(Allocator):支持容器的内存分配 算法:操作容器元素的函数.与OO不同(面向对象将元素与函数放到一个类里),GP(模板编程)将数据放入容器,操作方法放入算法中. 迭代器(Iterator): 算法和容器之间的桥梁,通过迭代器,算法才能去操作容器中的元素.迭代器就是泛化的指针. 适配器(Adapters):对其他组件进行转换. 仿函数(Functors):自定义类的相关操作(比如自定义类A,计算其两个实例

GeekBand_CPP_STL_Architecture&amp;Container

STL六大部件: Containers(容器) Allocators(分配器) Algorithms(算法) Iterators(迭代器) Adapters(适配器) Functors仿函数) STL的主体在于容器,其他五个部件共同实现了容器的各种功能