STL诞生
STL诞生教程,随者 C++ 标准的不断改进,STL 也在不断地做着相应的演化。直至 1998 年,ANSI/ISO C++ 标准正式定案,STL 始终是 C++ 标准库不可或缺的重要组成部分。
STL版本
STL版本说明,C++ STL 规范版本正式通过以后,由于其实开源的,各个 C++ 编译器厂商在此标准的基础上,实现了满足自己需求的 C++ STL 泛型库,主要包括 HP STL、SGI STL、STLport、PJ STL、Rouge Wave STL 等。
STL迭代器分类
C++ STL迭代器,C++ STL迭代器教程,STL 中的迭代器和 C++ 的指针非常类似,它可以是需要的任意类型,通过迭代器可以指向容器中的某个元素,如果需要,还可以对该元素进行读/写操作。
C++ STL容器常用成员函数
C++ STL容器常用成员函数,array vector和deque,函数成员函数功能 array<T,N> vector<T> deque<T> begin()返回指向容器中第一个元素的迭代器。
STL array数组
STL array数组,STL array数组教程,array 容器是 C++ 11 标准中新增的序列容器,简单地理解,它就是在 C++ 普通数组的基础上,添加了一些成员函数和全局函数。
STL array迭代器
STL array迭代器教程,array 容器是 C++ 11 标准中新增的 序列容器,同时,STL 也为 array 容器配备了随机访问迭代器,可以用来随机访问 array 容器中的元素。
STL array反向迭代器
STL array反向迭代器教程,array 容器是 C++ 11 标准中新增的 序列容器,同时,STL 也为 array 容器配备了随机访问的迭代器和反向迭代器,可以用来随机访问 array 容器中的元素。
STL vector使用
vector 容器是 STL 中最常用的容器之一,我们要创建一个 vector 容器有四种方式,即直接创建一个 vector、创建一个 vector 并赋值、指定 vector 元素个数创建 vector 和通过 vector 创建 vector。
STL vector访问元素
STL 中的 vector 容器的访问可以使用下标索引的形式、使用 at 的形式、使用 data 的形式,还可以使用 front 和 back 来分别访问第一个元素和最后一个元素。
STL vector遍历
如果我们需要遍历 STL 中的 vector 容器可以使用 size 获取其长度,并使用索引遍历、或者直接使用 C++ 11 的 for 循环进行遍历、也可以使用迭代器的方式进行遍历。
STL队列deque
STL 中的 deque 是双端队列容器,deque 容器和 vector 容器有很多相似之处,deque 容器也擅长在序列尾部添加或删除元素(时间复杂度为O(1)),而不擅长在序列中间添加或删除元素。
STL deque访问元素
STL 中的 deque 容器的访问可以使用下标索引的形式、使用 at 的形式、使用 front 和 back 来分别访问第一个元素和最后一个元素、还可以使用 begin 和 end 来访问元素。
STL deque遍历
如果我们需要遍历 STL 中的 deque 容器可以使用 size 获取其长度,并使用索引遍历、或者直接使用 C++ 11 的 for 循环进行遍历、也可以使用迭代器的方式进行遍历。
STL deque添加元素
如果我们需要向 STL 中的 deque 容器添加元素有四种方法,即,使用 push_back 方法、使用 push_front 方法、使用 emplace_back 方法和使用 emplace_front 方法。
STL deque删除元素
如果我们需要删除 STL 中的 deque 容器中的元素,我们可以使用 pop_back 函数、使用 pop_front 函数、使用 erase 函数和使用 clear 函数。
STL链表list
STL 中的 list 容器,又称双向链表容器,即该容器的底层是以双向链表的形式实现的。这意味着,list 容器中的元素可以分散存储在内存空间里,而不是必须存储在一整块连续的内存空间中。
STL list使用
list 容器是 STL 中最常用的容器之一,我们要创建一个 list 容器有四种方式,即直接创建一个 list、创建一个 list 并赋值、指定 list 元素个数创建 list 和通过 list 创建 list。
STL list添加元素
STL 中的 list 容器添加元素有多种方法,我们可以使用 push_front()、push_back()、emplace_front()、emplace_back() 等四种方法。
STL list插入元素
如果我们需要添向 STL 中的 list 容器插入元素有三种方法,即,使用 insert 方法插入元素、使用 emplace 方法插入元素和使用 splice 方法插入元素。
STL list删除重复元素
如果我们要删除 list 中的所有的重复的元素,我们可以使用 unique 函数,unique 函数只能删除相邻的重复元素,其中 unique 函数还可以传入一个函数,根据函数规则,判断两个元素是否相等。
STL单链表forward_list
STL 中的 forward_list 是 C++ 11 新添加的一类容器,其底层实现和 list 容器一样,采用的也是链表结构,只不过 forward_list 使用的是单链表,而 list 使用的是双向链表。
STL forward_list容器使用教程
STL forward_list容器使用教程,forward_list 容器是 STL 中的单链表,我们要创建一个 forward_list 容器有四种方式,即直接创建一个 forward_list、创建一个 forward_list 并赋值、指定 forward_list 元素个数创建 forward_list 和通过 forward_list 创建 forward_list。
STL forward_list迭代器
STL forward_list迭代器教程,我们要访问 STL 中的 forward_list 容器必须要使用迭代器来访问,同时,forward_list 也为我们提供了多种迭代器。
STL forward_list访问元素
STL forward_list访问元素教程,STL 中的 forward_list 容器的访问只可以使用 front 来访问第一个元素,forward_list 元素访问不支持下标索引的形式和使用 at 的形式。
STL forward_list添加元素
STL forward_list添加元素教程,STL 中的 forward_list 容器添加元素有两种方法,我们可以使用 push_front() 和 emplace_front() 方法。
STL forward_list插入元素
STL forward_list插入元素教程,如果我们需要添向 STL 中的forward_list 容器插入元素有三种方法,即,使用 insert_after 方法插入元素、使用 emplace_after 方法插入元素和使用 splice_after 方法插入元素。
STL forward_list是否为空
STL forward_list插入元素教程,如果我们需要添向 STL 中的 forward_list 容器插入元素有三种方法,即,使用 insert_after 方法插入元素、使用 emplace_after 方法插入元素和使用 splice_after 方法插入元素。
STL forward_list删除元素
STL forward_list删除元素教程,如果我们需要删除 STL 中的 forward_list 容器中的元素,我们除了可以使用 forward_list 本身的函数,还可以使用一些全局函数。
STL forward_list删除某些条件元素
STL forward_list删除某些条件元素教程,如果我们要删除 forward_list 中的符合某些条件的元素,我们可以使用 remove_if 函数,该函数可以传入一个校验规则的函数。
STL forward_list删除重复元素
STL forward_list删除重复元素教程,如果我们要删除 forward_list 中的所有的重复的元素,我们可以使用 unique 函数,unique 函数只能删除相邻的重复元素。
C++ STL关联式容器
C++ STL关联式容器教程,STL 中的关联式容器主要包括 map、multimap、set 以及 multiset。和 序列式容器 不同的是,关联式容器在存储元素时还会为每个元素在配备一个键。
STL pair
STL pair教程,C++ STL 标准库提供了 pair 类模板,其专门用来将 2 个普通元素 first 和 second(可以是 C++ 基本数据类型、结构体、类自定的类型)创建成一个新元素 `<first, second>`。
STL map容器使用
STL map容器使用教程,map 容器是 STL 中最常用的容器之一,我们要创建一个 map 容器有三种方式,即直接创建一个 map、创建一个 map 并初始化和通过 map 创建 map。
STL map迭代器
STL map迭代器教程,C++ STL 标准库为 map 容器配备的是双向迭代器(bidirectional iterator)。这意味着,map 容器迭代器只能进行 `++p`、`p++`、`--p`、`p--`、`p` 操作。
STL map查找不小于键的元素
STL map查找不小于键的元素教程,我们要在 STL 中的 map 容器中查找键不小于指定值的第一个元素,我们可以使用 lower_bound 函数。如果成功找到,则返回指向该键值对的双向迭代器;
STL map查找大于键的元素
STL map查找不大于键的元素教程,我们要在 STL 中的 map 容器中查找键大于指定值的第一个元素,我们可以使用 upper_bound 函数。如果成功找到,则返回指向该键值对的双向迭代器;
STL map插入元素
STL map插入元素教程,如果我们需要向 STL 中的 map 容器插入元素有三种方法,即,使用下标索引的形式和使用 insert 方法插入元素还可以使用 emplace 方法。
STL map emplace
STL map emplace教程,如果我们需要向 STL 中的 map 容器插入元素除了使用下标索引的形式和使用 insert 方法插入元素,还可以使用 emplace 方法和 emplace_hint 方法。
STL multimap
STL multimap教程,multimap 是一个类似于 map 的容器,所谓 “相似”,指的是 multimap 容器具有和 map 相同的特性,即 multimap 容器也用于存储 pair<const K, T> 类型的键值对(其中 K 表示键的类型。
STL multimap使用
STL multimap容器使用教程,multimap 容器提供了多个构造函数用来创建 multimap,我们要创建一个 multimap 容器有三种方式,即直接创建一个 multimap、创建一个 multimap 并初始化和通过 multimap 创建 multimap。
STL multimap迭代器
STL multimap迭代器教程,C++ STL 标准库为 multimap 容器配备的是双向迭代器(bidirectional iterator)。这意味着,multimap 容器迭代器只能进行 `++p`、`p++`、`--p`、`p--`、`*p` 操作。
STL multimap查找元素
STL multimap查找元素教程,我们要在 STL 中的 multimap 容器中查找键为某个值的元素时,可以使用 find 函数,如果成功找到,则返回指向该键值对的双向迭代器;
STL multimap查找不小于键的元素
STL multimap查找不小于键的元素教程,我们要在 STL 中的 multimap 容器中查找键不小于指定值的第一个元素,我们可以使用 lower_bound 函数。如果成功找到,则返回指向该键值对的双向迭代器;
STL multimap查找大于键的元素
STL multimap查找不大于键的元素教程,我们要在 STL 中的 multimap 容器中查找键大于指定值的第一个元素,我们可以使用 upper_bound 函数。如果成功找到,则返回指向该键值对的双向迭代器;
STL multimap键个数
STL multimap键个数教程,我们要在 STL 中的 multimap 容器中查找某个键的个数,我们可以使用 count 函数,传入我们需要查找的键名即可。
STL multimap插入元素
STL multimap插入元素教程,如果我们需要向 STL 中的 multimap 容器插入元素有两种方法,即,使用 insert 方法插入元素和使用 emplace 方法。
STL multimap emplace
STL multimap emplace教程,如果我们需要向 STL 中的 multimap 容器插入元素除了使用 insert 方法插入元素,还可以使用 emplace 方法和 emplace_hint 方法。
STL multimap更新元素
STL multimap更新元素教程,STL 中的 multimap 元素的键是不可以修改的,但我们可以根据键修改对应的元素的值,要修改键对应的元素的值,只能通过迭代器遍历得到元素之后,再次修改其值。
STL multimap是否为空
STL multimap是否为空教程,我们需要知道 STL 中 multimap 是否为空,可以使用 size 函数获取其长度,看是否为 0,或者直接使用 empty 函数。
STL multimap删除元素
STL multimap删除元素教程,如果我们需要删除 STL 中的 multimap 容器中的元素,我们除了可以使用 erase 函数或者使用 clear 函数,我们使用 erase 删除的键存在多个时,会全部删除。
STL set使用
STL set容器使用教程,set 容器提供了多个构造函数用来创建 set,我们要创建一个 set 容器有三种方式,即直接创建一个 set、创建一个 set 并初始化和通过 set 创建 set。
STL set迭代器
STL set迭代器教程,C++ STL 中的 set 容器类模板中未提供 at() 成员函数,也未对 `[]` 运算符进行重载。因此,要想访问 set 容器中存储的元素,只能借助 set 容器的迭代器。
STL set迭代器
STL set迭代器教程,C++ STL 中的 set 容器类模板中未提供 at() 成员函数,也未对 `[]` 运算符进行重载。因此,要想访问 set 容器中存储的元素,只能借助 set 容器的迭代器。
STL set查找不小于值的元素
STL set查找不小于值的元素教程,我们要在 STL 中的 set 容器中查找不小于指定值的第一个元素,我们可以使用 lower_bound 函数。如果成功找到,则返回指向该值的双向迭代器。
STL set查找大于的元素
STL set查找不大于的元素教程,我们要在 STL 中的 set 容器中查找大于指定值的第一个元素,我们可以使用 upper_bound 函数。如果成功找到,则返回指向该值的双向迭代器;
STL set emplace
STL set emplace教程,如果我们需要向 STL 中的 set 容器插入元素除了使用 insert 方法插入元素,还可以使用 emplace 方法和 emplace_hint 方法。
STL set删除元素
STL set删除元素教程,如果我们需要删除 STL 中的 set 容器中的元素,我们可以使用 erase 函数或者使用 clear 函数,我们使用 erase 删除的键存在多个时,会全部删除。
STL multiset
STL multiset教程,C++ STL 标准库中还提供有一个和 set 容器相似的关联式容器,即 multiset 容器。所谓 “相似”,是指 multiset 容器遵循 set 容器的很多特性。
STL multiset使用
STL multiset容器使用教程,multiset 容器提供了多个构造函数用来创建 multiset,我们要创建一个 multiset 容器有三种方式,即直接创建一个 multiset、创建一个 multiset 并初始化和通过 multiset 创建 multiset。
STL multiset查找元素
STL multiset查找元素教程,我们要在 STL 中的 multiset 容器中查找某个值的元素时,可以使用 find 函数,如果成功找到,则返回指向该键值对的双向迭代器;反之,则返回和 end() 方法一样的迭代器。
STL multiset查找不小于的元素
STL multiset查找不小于的元素教程,我们要在 STL 中的 multiset 容器中查找不小于指定值的第一个元素,我们可以使用 lower_bound 函数。如果成功找到,则返回指向该键值对的双向迭代器;
STL multiset查找大于的元素
STL multiset查找不大于的元素教程,我们要在 STL 中的 multiset 容器中查找大于指定值的第一个元素,我们可以使用 upper_bound 函数。
STL multiset元素个数
STL multiset元素个数教程,我们要在 STL 中的 multiset 容器中查找某个元素的个数,我们可以使用 count 函数,传入我们需要查找的元素名即可。
STL multiset插入元素
STL multiset插入元素教程,如果我们需要向 STL 中的 multiset 容器插入元素有两种方法,即,使用 insert 方法插入元素和使用 emplace 方法。
STL multiset emplace
STL multiset emplace教程,如果我们需要向 STL 中的 multiset 容器插入元素除了使用 insert 方法插入元素,还可以使用 emplace 方法和 emplace_hint 方法。
STL multiset删除元素
STL multiset删除元素教程,如果我们需要删除 STL 中的 multiset 容器中的元素,我们可以使用 erase 函数或者使用 clear 函数,我们使用 erase 删除的键存在多个时,会全部删除。
STL unordered_map
STL unordered_map教程,unordered_map 容器,直译过来就是 "无序 map 容器" 的意思。所谓 “无序”,指的是 unordered_map 容器不会像 map 容器那样对存储的数据进行排序。
STL unordered_map使用
STL unordered_map容器使用教程,unordered_map 容器是 STL 中最常用的容器之一,我们要创建一个 unordered_map 容器有三种方式,即直接创建一个 unordered_map、创建一个 unordered_map 并初始化和通过 unordered_map 创建 unordered_map。
STL unordered_map迭代器
STL unordered_map迭代器教程,C++ STL 标准库为 unordered_map 容器配备的是双向迭代器(bidirectional iterator)。这意味着,unordered_map 容器迭代器只能进行 `++p`、`p++`、`--p`、`p--`、`*p` 操作。
STL unordered_map查找元素
STL unordered_map查找元素教程,我们要在 STL 中的 unordered_map 容器中查找键为某个值的元素时,可以使用 find 函数,如果找到,则返回一个指向该键值对的正向迭代器;
STL unordered_map获取元素
STL unordered_map获取元素教程,我们要在 STL 中的 unordered_map 容器中获取某个键对应的值,可以使用下标的方式和使用 at 的方式。
STL unordered_map插入元素
STL unordered_map插入元素教程,如果我们需要向 STL 中的 unordered_map 容器插入元素有三种方法,即,使用下标索引的形式和使用 insert 方法插入元素还可以使用 emplace 方法。
STL unordered_map emplace
STL unordered_map emplace教程,如果我们需要向 STL 中的 unordered_map 容器插入元素除了使用下标索引的形式和使用 insert 方法插入元素,还可以使用 emplace 方法和 emplace_hint 方法。
STL unordered_map更新元素
STL unordered_map更新元素教程,STL 中的 unordered_map 元素的键是不可以修改的,但我们可以根据键修改对应的元素的值,要修改键对应的元素的值,只需要使用下标方式即可。
STL unordered_map删除元素
STL unordered_map删除元素教程,如果我们需要删除 STL 中的 unordered_map 容器中的元素,我们可以使用 erase 函数。
STL unordered_multimap
STL unordered_multimap教程,unordered_multimap 是一个类似于 unordered_map 的容器,所谓 “相似”,指的是 unordered_multimap 容器具有和 unordered_map 相同的特性,即 unordered_multimap 容器也用于存储 pair<const K, T> 类型的键值对(其中 K 表示键的类型,T 表示值的类型)。
STL unordered_multimap使用
STL unordered_multimap容器使用教程,unordered_multimap 容器提供了多个构造函数用来创建 unordered_multimap,我们要创建一个 unordered_multimap 容器有三种方式,即直接创建一个 unordered_multimap。
STL unordered_multimap迭代器
STL unordered_multimap迭代器教程,C++ STL 标准库为 unordered_multimap 容器配备了迭代器用来遍历容器的操作。
STL unordered_multimap查找元素
STL unordered_multimap查找元素教程,我们要在 STL 中的 unordered_multimap 容器中查找键为某个值的元素时,可以使用 find 函数,如果成功找到,则返回指向该键值对的迭代器;反之,则返回和 end() 方法一样的迭代器。
STL unordered_multimap键个数
STL unordered_multimap键个数教程,我们要在 STL 中的 unordered_multimap 容器中查找某个键的个数,我们可以使用 count 函数,传入我们需要查找的键名即可。
STL unordered_multimap插入元素
STL unordered_multimap插入元素教程,如果我们需要向 STL 中的 unordered_multimap 容器插入元素有两种方法,即,使用 insert 方法插入元素和使用 emplace 方法。
STL unordered_multimap emplace
STL unordered_multimap emplace教程,如果我们需要向 STL 中的 unordered_multimap 容器插入元素除了使用 insert 方法插入元素,还可以使用 emplace 方法和 emplace_hint 方法。
STL unordered_multimap更新元素
STL unordered_multimap更新元素教程。STL 中的 unordered_multimap 元素的键是不可以修改的,但我们可以根据键修改对应的元素的值,要修改键对应的元素的值,只能通过迭代器遍历得到元素之后,再次修改其值。
STL unordered_multimap长度
STL unordered_multimap长度教程,我们需要知道 STL 中 unordered_multimap 的长度,可以使用 size 函数。
STL multimap是否为空
STL multimap是否为空教程,我们需要知道 STL 中 multimap 是否为空,可以使用 size 函数获取其长度,看是否为 0,或者直接使用 empty 函数。
STL unordered_multimap删除元素
STL unordered_multimap删除元素教程,如果我们需要删除 STL 中的 unordered_multimap 容器中的元素,我们除了可以使用 erase 函数或者使用 clear 函数,我们使用 erase 删除的键存在多个时,会全部删除。
STL unordered_set
STL unordered_set教程,unordered_set 容器,可直译为 “无序 set 容器”,即 unordered_set 容器和 set 容器很像,唯一的区别就在于 set 容器会自行对存储的数据进行排序,而 unordered_set 容器不会。
STL unordered_set使用
STL unordered_set容器使用教程,unordered_set 容器提供了多个构造函数用来创建 unordered_set,我们要创建一个 unordered_set 容器有三种方式,即直接创建一个 unordered_set、创建一个 unordered_set 并初始化和通过 unordered_set 创建 unordered_set。
STL unordered_set迭代器
STL unordered_set迭代器教程,C++ STL 中的 unordered_set 容器类模板中未提供 at() 成员函数,也未对 `[]` 运算符进行重载。因此,要想访问 unordered_set 容器中存储的元素,只能借助 unordered_set 容器的迭代器。
STL unordered_set查找元素
STL unordered_set查找元素教程,我们要在 STL 中的 unordered_set 容器中查找键为某个值的元素时,可以使用 find 函数,如果成功找到,则返回指向该键值对的双向迭代器;反之,则返回和 end() 方法一样的迭代器。
STL unordered_set插入元素
STL unordered_set插入元素教程,如果我们需要向 STL 中的 unordered_set 容器插入元素有两种方法,即,使用 insert 方法插入元素和使用 emplace 方法。
STL unordered_set emplace
STL unordered_set emplace教程,如果我们需要向 STL 中的 unordered_set 容器插入元素除了使用 insert 方法插入元素,还可以使用 emplace 方法和 emplace_hint 方法。
STL unordered_set删除元素
STL unordered_set删除元素教程,如果我们需要删除 STL 中的 unordered_set 容器中的元素,我们可以使用 erase 函数或者使用 clear 函数,我们使用 erase 删除的键存在多个时,会全部删除。
STL unordered_multiset
STL unordered_multiset教程,C++ STL 标准库中还提供有一个和 multiset 容器相似的关联式容器,即 unordered_multiset 容器。所谓 “相似”,是指 unordered_multiset 容器遵循 set 容器的很多特性。
STL unordered_multiset使用
STL unordered_multiset容器使用教程,unordered_multiset 容器提供了多个构造函数用来创建 unordered_multiset,我们要创建一个 unordered_multiset 容器有三种方式,即直接创建一个 unordered_multiset、创建一个 unordered_multiset 并初始化和通过 unordered_multiset 创建 unordered_multiset。
STL unordered_multiset查找元素
STL unordered_multiset查找元素教程,我们要在 STL 中的 unordered_multiset 容器中查找某个值的元素时,可以使用 find 函数,如果成功找到,则返回指向该键值对的双向迭代器;反之,则返回和 end() 方法一样的迭代器。
STL unordered_multiset元素个数
STL unordered_multiset元素个数教程,我们要在 STL 中的 unordered_multiset 容器中查找某个元素的个数,我们可以使用 count 函数,传入我们需要查找的元素名即可。
STL unordered_multiset插入元素
STL unordered_multiset插入元素教程,如果我们需要向 STL 中的 unordered_multiset 容器插入元素有两种方法,即,使用 insert 方法插入元素和使用 emplace 方法。
STL unordered_multiset emplace
STL unordered_multiset emplace教程,如果我们需要向 STL 中的 unordered_multiset 容器插入元素除了使用 insert 方法插入元素,还可以使用 emplace 方法和 emplace_hint 方法。
STL unordered_multiset删除元素
STL unordered_multiset删除元素教程,如果我们需要删除 STL 中的 unordered_multiset 容器中的元素,我们可以使用 erase 函数或者使用 clear 函数,我们使用 erase 删除的键存在多个时,会全部删除。
STL stack适配器
STL stack适配器教程,stack 栈适配器是一种单端开口的容器,实际上该容器模拟的就是栈存储结构,即无论是向里存数据还是从中取数据,都只能从这一个开口实现操作。
STL stack适配器使用
STL stack适配器使用教程,stack 适配器 提供了多个构造函数用来创建 stack 适配器,我们要创建一个 stack 适配器有三种方式,即直接创建一个 stack 适配器。
STL queue适配器
STL queue适配器教程,queue 适配器和 stack 栈容器适配器不同,queue 容器适配器有 2 个开口,其中一个开口专门用来输入数据,另一个专门用来输出数据。
STL queue适配器使用
STL queue适配器使用教程,queue 适配器 提供了多个构造函数用来创建 queue 适配器,我们要创建一个 queue 适配器有三种方式,即直接创建一个 queue 适配器。
STL priority_queue适配器
STL priority_queue适配器教程,priority_queue 容器适配器模拟的也是队列这种存储结构,即使用此容器适配器存储元素只能 “从一端进(称为队尾),从另一端出(称为队头)”,且每次只能访问 priority_queue 中位于队头的元素。
STL priority_queue适配器使用
STL priority_queue适配器使用教程,priority_queue 适配器提供了多个构造函数用来创建 priority_queue 适配器,我们要创建一个 priority_queue 适配器有三种方式,即直接创建一个 priority_queue 适配器。
C++ STL迭代器适配器
C++ STL迭代器适配器教程,STL 中的迭代器适配器有 5 种,分别是反向迭代器适配器、插入型迭代器适配器、流迭代器适配器、流缓冲区迭代器适配器、移动迭代器适配器。
STL反向迭代器适配器
STL反向迭代器适配器教程,反向迭代器适配器(reverse_iterator),可简称为反向迭代器或逆向迭代器,常用来对容器进行反向遍历,即从容器中存储的最后一个元素开始,一直遍历到第一个元素。
STL front_insert_iterator
STL front_insert_iterator教程,STL 中的 front_insert_iterator 和 back_insert_iterator 正好相反,front_insert_iterator 迭代器的功能是向目标容器的头部插入新元素。并且,由于此类型迭代器的底层实现需要借助目标容器的 push_front() 成员方法。
STL insert_iterator
STL insert_iterator教程,在 STL 中当需要向容器的任意位置插入元素时,就可以使用 insert_iterator 类型的迭代器。需要说明的是,该类型迭代器的底层实现,需要调用目标容器的 insert() 成员方法。
STL stream_iterator
STL stream_iterator教程,STL 中的流迭代器也是一种迭代器适配器,不过和之前讲的迭代器适配器有所差别,它的操作对象不再是某个容器,而是流对象。
STL ostream_iterator
STL ostream_iterator教程,STL 中的 ostream_iterator 和 输入流迭代器 恰好相反,输出流迭代器用于将数据写到指定的输出流(如 cout)中。另外,该类型迭代器本质上属于输出迭代器。
STL istreambuf_iterator
STL istreambuf_iterator教程,STL 中的流缓冲区迭代器可以细分为输入流缓冲区迭代器和输出流缓冲区迭代器,输入流缓冲区迭代器(istreambuf_iterator)也就是从输入流缓冲区中读取字符元素;
STL ostreambuf_iterator
STL ostreambuf_iterator教程,STL 中的 ostreambuf_iterator 迭代器和 istreambuf_iterator 输入流缓冲区迭代器恰恰相反,ostreambuf_iterator 输出流缓冲区迭代器用于将字符元素写入到指定的流缓冲区中。
STL move_iterator
STL move_iterator教程,STL 中的 move_iterator 迭代器适配器,又可简称为移动迭代器,其可以实现以移动而非复制的方式,将某个区域空间中的元素移动至另一个指定的空间。
STL move_iterator使用
STL move_iterator使用教程,STL 中的 move_iterator 的创建有四种方式,即:使用默认构造函数创建一个不指向任何对象的移动迭代器、使用初始化的方式创建、用已有的移动迭代器初始化新建的同类型迭代器和使用 make_move_iterator() 函数创建。
STL const_iterator转iterator
STL const_iterator转iterator教程,在 STL 中,我们如果需要将 const_iterator 转换为 iterator 可以借助 advance() 和 distance() 函数。
STL prev和next函数
STL prev和next函数教程,STL 中的 prev 函数可用来获取一个距离指定迭代器 n 个元素的迭代器,next 函数用来获取一个距离指定迭代器 n 个元素的迭代器。
STL stable_sort排序
STL stable_sort排序算法,C++ STL 中的 stable_sort() 函数完全可以看作是 sort() 函数在功能方面的升级版。换句话说,stable_sort() 和 sort() 具有相同的使用场景,就连语法格式也是相同的。
STL partial_sort排序
STL partial_sort排序算法,C++ STL 中的 partial_sort() 函数用于从指定区域中提取出部分数据,并对它们进行排序,但 “部分排序” 仅仅是对 partial_sort() 函数功能的一个概括。
STL partial_sort_copy排序
STL partial_sort_copy排序算法,C++ STL 中的 partial_sort_copy() 函数的功能和 partial_sort() 类似,唯一的区别在于,前者不会对原有数据做任何变动。
STL nth_element排序
STL nth_element排序算法,STL 中的 nth_element 函数是当采用默认的升序排序规则(std::less<T>)时,该函数可以从某个序列中找到第 n 小的元素 K,并将 K 移动到序列中第 n 的位置处。
STL is_sorted函数
STL is_sorted函数算法,在 STL 中,我们需要对一组数据进行排序之前,可以首先使用 is_sorted 函数对数据进行判断,判断其是否已经排序好了,如果没有排序好,再次进行排序。
STL is_sorted_until函数
STL is_sorted_until函数算法,在 STL 中,is_sorted_until 函数和 is_sorted() 函数相比,不仅能检测出某个序列是否有序,还会返回一个正向迭代器,该迭代器指向的是当前序列中第一个破坏有序状态的元素。
STL inplace_merge函数
STL inplace_merge函数算法,在 STL 中,inplace_merge 函数用于将两个有序集合合并为一个有序序列。前提是这 2 个有序序列的排序规则相同(要么都是升序,要么都是降序)。
STL find_if函数
STL find_if函数算法,在 STL 中,find_if() 函数和 find() 函数相同,find_if() 函数也用于在指定区域内执行查找操作。不同的是,前者需要明确指定要查找的元素的值,而后者则允许自定义查找规则。
STL find_if_not函数
STL find_if_not函数算法,在 STL 中,find_if_not() 函数和 find_if() 函数的功能恰好相反,find_if() 函数用于查找符合谓词函数规则的第一个元素,而 find_if_not() 函数则用于查找第一个不符合谓词函数规则的元素。
STL find_end函数
STL find_end函数算法,在 STL 中,find_end() 函数用于在集合中查找元素,find_end() 函数会返回一个正向迭代器,当函数查找成功时,该迭代器指向查找到的子序列中的第一个元素。
STL find_first_of函数
STL find_first_of函数算法,在 STL 中,find_first_of() 函数用于在 A 序列中查找和 B 序列中任意元素相匹配的第一个元素。
STL partition函数
STL partition函数算法,在 STL 中 partition() 函数用于根据用户自定义的筛选规则,重新排列指定区域内存储的数据,使其分为 2 组,第一组为符合筛选条件的数据,另一组为不符合筛选条件的数据。
STL stable_partition函数
STL stable_partition函数算法,在 STL 中 partition() 函数只负责对指定区域内的数据进行分组,并不保证各组中元素的相对位置不发生改变。
STL partition_copy函数
STL partition_copy函数算法,在 STL 中 partition_copy() 和 stable_partition() 一样也能按照某个筛选规则对指定区域内的数据进行 “分组”,并且分组后不会改变各个元素的相对位置。
STL partition_point函数
STL partition_point函数算法,在 STL 中 partition_point() 函数用于在已分好组的数据中找到分界位置,该函数会返回一个正向迭代器,该迭代器指向的是 [first, last] 范围内第一个不符合 pred 筛选规则的元素。
STL lower_bound函数
STL lower_bound函数算法,在 STL 中 lower_bound() 函数用于在指定区域内查找不小于目标值的第一个元素。也就是说,使用该函数在指定范围内查找某个目标值时。
STL upper_bound函数
STL upper_bound函数算法,在 STL 中 upper_bound() 函数用于在指定范围内查找大于目标值的第一个元素,该函数会返回一个正向迭代器,当查找成功时,迭代器指向找到的元素。
STL mismatch函数
STL mismatch函数算法,STL 中的 equal() 算法可以告诉我们两个序列是否匹配。mismatch() 算法也可以告诉我们两个序列是否匹配,而且如果不匹配,它还能告诉我们不匹配的位置。
STL lexicographical_compare函数
STL lexicographical_compare函数算法,STL 中的 lexicographical_compare() 算法可以比较由开始和结束迭代器定义的两个序列。
STL next_permutation函数
STL next_permutation函数算法,STL 中的 next_permutation() 算法用于生成一个序列的重排列,它是所有可能的字典序中的下一个排列,默认使用 < 运算符来做这些事情。
STL prev_permutation函数
STL prev_permutation函数算法,STL 中的 prev_permutation() 算法用于生成一个序列的重排列,它是所有可能的字典序中的下一个排列,默认使用 > 运算符来做这些事情。
STL is_permutation函数
STL is_permutation函数算法,STL 中的 is_permutation() 算法可以用来检查一个序列是不是另一个序列的排列,如果是,会返回 true。
STL copy_backward函数
STL copy_backward函数算法,STL 中的 copy_backward() 会像 copy() 那样复制元素,但是从最后一个元素开始直到第一个元素。copy_backward() 会复制前两个迭代器参数指定的序列。
STL reverse_copy函数
STL reverse_copy函数算法,STL 中的 reverse_copy() 算法可以将源序列复制到目的序列中,目的序列中的元素是逆序的。定义源序列的前两个迭代器参数必须是双向迭代器。
STL swap_ranges函数
STL swap_ranges函数算法,STL 中的 swap_ranges() 函数用于从 First2 开始的位置开始和 [First1,last1) 中的元素开始交换,返回值是交换后的第二个区间中元素的最后一个元素的迭代器对象。
STL remove函数
STL remove函数算法,STL 中的 remove() 函数用于从它的前两个正向迭代器参数指定的序列中移除和第三个参数相等的对象。基本上每个元素都是通过用它后面的元素覆盖它来实现移除的。
STL remove_copy函数
STL remove_copy函数算法,STL 中的 remove_copy() 函数用于将前两个正向迭代器参数指定的序列中的元素复制到第三个参数指定的目的序列中,并忽略和第 4 个参数相等的元素。
STL remove_if函数
STL remove_if函数算法,STL 中的 remove_if() 函数用于从前两个正向迭代器指定的序列中移除能够使作为第三个参数的谓词返回 true 的元素。
STL remove_copy_if函数
STL remove_copy_if函数算法,STL 中的 remove_copy_if() 函数用于将前两个正向迭代器参数指定的序列中,能够使作为第 4 个参数的谓词返回 true 的元素,复制到第三个参数指定的目的序列中。
STL generate函数
STL generate函数算法,STL 中的 generate() 函数用指定函数对象产生的值去给容器指定范围内元素赋值。而且 generate() 没有任何返回值。
STL transform函数
STL transform函数算法,STL 中的 transform() 函数用于转换元素,转换有两种:一元转换和二元转换。一元转换是对容器给定范围内的每个元素做某种一元运算后放在另一个容器里。
STL replace函数
STL replace函数算法,STL 中的 replace() 算法会用新的值来替换和给定值相匹配的元素。它的前两个参数是被处理序列的正向迭代器,第 3 个参数是被替换的值,第 4 个参数是新的值。
STL replace_if函数
STL replace_if函数算法,STL 中的 replace_if() 会将使谓词返回 true 的元素替换为新的值。它的第 3 个参数是一个谓词,第 4 个参数是新的值。参数的类型一般是元素类型的 const 引用;
STL replace_copy函数
STL replace_copy函数算法,STL 中的 replace_copy() 算法和 replace() 做的事是一样的,但它的结果会被保存到另一个序列中,而不会改变原始序列。
STL replace_copy_if函数
STL replace_copy_if函数算法,STL 中可以在序列中有选择地替换元素的最后一个算法是 replace_copy_if_if(),它和 replace_if() 算法是相同的,但它的结果会被保存到另一个序列中。