C++ 系列之STL篇
文章平均质量分 82
C++标准库STL
Carson.Yang
C++/QT/Android Framwork工程师
展开
-
07 C++STL之内存分配器
C++ 的默认的内存分配器,继承至。而 主要完成两个任务: 是个空类,没有成员变量,主要有四种成员函数完成上述任务函数,用于分配大小为个字节内存,返回值是分配所得内存的地址。整个过程如下:1.2 deallocate函数,使用来释放地址指向的内存。1.3 construct上面的函数相当于函数,只是分配个字节的内存,但是并未对这片内存进行初始化。对 函数分配的内存进行初始化的任务,交给函数来完成。函数,使用了表达式的另一种形式,叫做,使用方式如下注释:1.4 destroy函数,是完成了释放原创 2022-07-09 08:30:00 · 827 阅读 · 0 评论 -
06 C++STL之适配器
STL 提供了序列式容器,同时针对序列式容器提供了应用于不同场景的容器适配器,通俗讲适配器就是以序列式容器为底层数据结构,进一步封装了的为适应场景应用的容器。STL 中提供了三种适配器,分别为 stack,queue 和 priority_queue。...原创 2022-07-08 09:10:29 · 320 阅读 · 1 评论 -
05 C++STL之函数对象(仿函数)
仿函数的主要功能是为了搭配STL算法使用, 仿函数(functors)在C++标准中采用的名称是函数对象(function objects原创 2022-07-07 10:12:05 · 268 阅读 · 0 评论 -
04 C++STL之迭代器
要访问顺序容器和关联容器中的元素,需要通过 “迭代器(iterator)” 进行。迭代器是一个变量,相当于容器和操纵容器的算法之间的中介。迭代器可以指向容器中的某个元素,通过迭代器就可以读写它指向的元素。从这一点上看,迭代器和指针类似。定义方法:容器类名::iterator 迭代器名;定义方法:容器类名::const_iterator 迭代器名;定义方法:容器类名::reverse_iterator 迭代器名;定义方法:容器类名::const_reverse_iterator 迭代器名;通过迭代器可原创 2022-07-06 12:04:41 · 300 阅读 · 1 评论 -
03 C++ STL之算法
示例程序:2. 变值算法 对区间的每个元素都做某种操作; 复制一个区间到别处; 复制一个区间到别处,但目标区间是从后往前修改的; 将一个区间的元素变形后拷贝到另一个区间; 交换两个区间的内容; 用某个值填充区间; 用某个值替换区间中的 n {\rm n} n 个元素; 用某个操作的结果填充区间; 用某个操作的结果替换区间中的 n {\rm n} n 个元素; 将区间中的某个值替换为另一个值; 将区间中符合某种条件的值替换成另一个值; 将一个区间拷贝到另一个区间,拷贝时某个值要换原创 2022-07-05 14:26:39 · 199 阅读 · 1 评论 -
02 C++STL之容器
array(数组容器):定义在< array >头文件中, 表示可以存储N个T类型的元素,是C++本身提供的一种容器。此容器一旦建立,其长度就是固定不变的,也就是说无法增加或者删除元素,只能改变某个元素的值;vector(向量容器):定义在< vector>头文件中,用来存储T类型的元素,是一个长度可变的序列容器,即在存储空间不足时,会自动申请更多的内存。使用此容器,在尾部增加或者删除元素效率最高(时间复杂度为O(1)常数阶),在其他位置插入或删除元素效率较差(时间复杂度O(n)线性阶,其中n为.....原创 2022-07-04 13:00:28 · 880 阅读 · 1 评论 -
01 C++STL之简介
STL 英文全称 standard template library,中文可译为标准模板库或者泛型库,其包含有大量的模板类和模板函数,是 C++ 提供的一个基础模板的集合,用于完成诸如输入/输出、数学计算等功能。STL 最初由惠普实验室开发,于 1998 年被定为国际标准,正式成为 C++ 程序库的重要组成部分。值得一提的是,如今 STL 已完全被内置到支持 C++ 的编译器中,无需额外安装,这可能也是 STL 被广泛使用的原因之一。STL 就位于各个 C++ 的头文件中,即它并非以二进制代码的形式提供原创 2022-07-03 13:13:39 · 146 阅读 · 1 评论