STL中六大组件的关系
来源:互联网 发布:mac的废纸篓在哪 编辑:程序博客网 时间:2024/06/05 16:17
六大组件:
容器(containers):各種資料結構,如 vector, list, deque, set, map,用来存放“元素”。就是template class。
演算法(algorithms):各種常用演算法如 sort, search, copy, erase,就是template class。
迭代器(iterators):是所謂的「泛型指標」,是㆒種將 operator*, operator->, operator++, operator-- 等指標相關操作予以多載化的 class template。所有STL 容器都附帶有自己專屬的迭代器 — 是的,只有容器設計者才知道如何巡訪自己的元素。原生指標(nativepointer)也是㆒種迭代器。
仿函式(functors):行為類似函式,可做為演算法的某種策略(policy),從實作的角度看,仿函式是㆒種重載了operator()的class 或class template。原生的函式指针可視為狹義的仿函式。
配接器(adapters):㆒種用來封装容器(containers)或仿函式(functors)或迭代器(iterators)介面的東西。例如 STL 提供的queue 和stack,雖然看似容器,其實只能算是㆒種容器配接器,因為它們的底部完全借重deque,所有動作都由底層的deque 供應。
配置器(allocators):負責空間配置與管理,從實作的角度看,配置器是㆒個實現了動態空間配置、空間管理、空間釋放的class template
之间关系:
空间配置器-->容器-->迭代器-->算法<--仿函式
算法需要使用迭代器和仿函式作为参数来运算。如:for_each(begin, end, print())。任何一个算法都需要迭代器提供一个容器中的“区间”来表示操作范围。这个区间是前闭后开(begin, end],即:包含begin但不包含end。
template
Function for_each(InputIterator first, InputIterator last, Function f)
{
for ( ; first != last; ++first)
f(*first);
return f;
}
许多算法都提供了两个版本,一个不包含“仿函式”用于缺省的算法,另一个包含“仿函式”(算子)用于用户自定义的“演算规则”。
配接器则对容器、迭代器、仿函式进行各种封装。
空间配置器为容器中的“元素”提供存储空间。
- STL中六大组件的关系
- STL六大组件的交互关系
- STL的六大组件
- STL的六大组件
- 我眼中的STL六大组件的关系
- STL提供六大组件以及彼此之间的关系
- STL标准库六大组件 关系 作用
- STL六大组件的定义
- STL 3: STL的六大组件
- C++中STL六大组件简介
- STL源码解析1—六大组件关系
- STL六大组件
- STL六大组件
- STL六大组件简介
- STL六大组件
- STL六大组件
- STL 六大组件概述
- STL六大组件
- 迷茫
- 喜欢写程序么?
- Linux环境VNC服务安装、配置与使用
- lucene整理1 -- 概念
- 有所思而有所作(古诗体)
- STL中六大组件的关系
- google“退出”中国?
- 自己动手写操作系统(第一天)
- Ramdisk plus使用技巧(把系统内存划出一部分当作硬盘使用)
- 为电脑加锁 只有插入自己的U盘才启动
- lucene整理2 -- 主要的类
- Linux+Apache2+openssl实现https验证
- 2010年信息系统项目管理师上午试题应试策略
- 在cmd面板中输入不了中文的解决方案