C++ STL/ (13) 常用遍历算法
2017-04-11 15:38
211 查看
STL中的算法由头文件algorithm functional numeric这3个文件组成。
STL算法分为质变算法和非质变算法
我们将在剩下的blog中讲述STL中常用的一些算法,包括:遍历,查找,排序,拷贝,替换,算术生成,集合算法等内容。
本节主要讲述STL中常用的遍历算法。
for_each
我们之前讲述函数对象的时候使用过该函数。这里提出需求如下:
定义一个数据类型为int的数组,定义一个函数对象打印int类型数据,使用for_each函数打印数组中所有的元素。并记录函数对象调用次数。
transform
transform的参数如下:
transform(第一个容器的begin,第一个容器的end,第二个容器的begin,一元函数对象作用于第一个容器将结果返回到第二个容器)
或:
transform(第一个容器的begin,第一个容器的end,第二个容器的begin,第三个容器的begin,二元函数对象作用于第一个容器和第二个容器将结果返回到第三个容器)
注意:使用该函数的时候v1,v2已经有数据了但是v3往往没有数据,我们需要使用resize函数先给v3开辟一块存储空间。这样才能正确使用transform。
STL算法分为质变算法和非质变算法
我们将在剩下的blog中讲述STL中常用的一些算法,包括:遍历,查找,排序,拷贝,替换,算术生成,集合算法等内容。
本节主要讲述STL中常用的遍历算法。
for_each
我们之前讲述函数对象的时候使用过该函数。这里提出需求如下:
定义一个数据类型为int的数组,定义一个函数对象打印int类型数据,使用for_each函数打印数组中所有的元素。并记录函数对象调用次数。
transform
transform的参数如下:
transform(第一个容器的begin,第一个容器的end,第二个容器的begin,一元函数对象作用于第一个容器将结果返回到第二个容器)
或:
transform(第一个容器的begin,第一个容器的end,第二个容器的begin,第三个容器的begin,二元函数对象作用于第一个容器和第二个容器将结果返回到第三个容器)
注意:使用该函数的时候v1,v2已经有数据了但是v3往往没有数据,我们需要使用resize函数先给v3开辟一块存储空间。这样才能正确使用transform。
相关文章推荐
- C++ STL 常用遍历算法
- C++与C#对常用数据结构封装的对比(STL vs System.Collections.Generic)[转自柒笑侠]
- 【转】 C++STL 常用 函数 用法
- C++ STL常用函数用法
- C++ STL 常用 函数 用法
- C++之STL(三):迭代器类vector::iterator 和 vector::reverse_iterator 的实现、迭代器类型、常用的容器成员
- 【原】C++与C#对常用数据结构封装的对比(STL vs System.Collections.Generic)
- c++ STL常用算法使用方法
- C++中STL常用容器的区别
- C++中STL常用容器的优点和缺点
- C++STL 常用 函数 用法
- 【转载】C++与C#对常用数据结构封装的对比(STL vs System.Collections.Generic)
- C++ STL之string常用指令
- 从零开始学C++之STL(三):迭代器类vector::iterator 和 vector::reverse_iterator 的实现、迭代器类型、常用的容器成员
- C++ STL中的常用容器浅谈
- C++与C#对常用数据结构封装的对比(STL vs System.Collections.Generic)
- C++常用的STL
- C++ STL之pair常用指令
- C++中STL常用容器的区别
- C++中STL常用容器的优点和缺点