C++ STL中的常用遍历算法分享

 更新时间:2022年12月20日 15:24:55   作者:莫浅子  
这篇文章主要为大家详细介绍了C++ STL中两个常用的遍历算法,文中的示例代码讲解详细,具有一定的学习与借鉴价值,感兴趣的小伙伴可以参考一下

1.for_each

功能描述

实现容器遍历

函数原型

for_each(itertor beg,iterator end,_func);
//遍历算法 遍历容器元素
//beg 开始迭代器
//end 结束迭代器
//_func函数或者函数对象

代码

#include <iostream>
using namespace std;
#include <vector>
#include <algorithm>
 
//普通函数
void print01 (int val)
{
	cout<< val << " ";
} 
 
//放寒暑
class print02
{
public:
	void operator()(int val)
	{
		cout<< val << " "; 
	}
};
void test01()
{
   vector<int>v;
   for(int i = 0;i < 10;i ++)
   {
   	  v.push_back(i);
   }
   for_each(v.begin(),v.end(),print01);
   cout<<endl;
   for_each(v.begin(),v.end(),print02());
   cout<<endl; 
    
} 
int main()
{
	test01();
} 

运行结果

2.transform

功能描述

搬运容器到另一个容器

函数原型

transform (iterator beg1,iterator endl, iterator beg2,_func);
//beg1 源容器开始迭代器
//end1 源容器结束迭代器
//beg2 目标函数开始迭代器
//_func 函数或者函数对象

代码 

#include <iostream>
using namespace std;
#include <vector>
#include <algorithm>
 
class Transform
{
public:
    int operator()(int v)
	{
		return  v;
	}	
};
class MyPrint{
	public:
		void operator()(int val)
		{
			cout<< val <<" ";
		}
};
void test01()
{
	vector<int>v;
	for(int i = 0;i < 10;i ++)
    {
   	  v.push_back(i);
    }
    vector<int>vTarget;   //目标函数
    vTarget.resize(v.size());   //目标容器要提前开辟空间 
	transform(v.begin(), v.end(), vTarget.begin(),Transform());
	
	for_each(vTarget.begin(),vTarget.end(), MyPrint());
	cout<<endl; 
	
}
int main()
{
	test01();
}

运行结果

到此这篇关于C++ STL中的常用遍历算法分享的文章就介绍到这了,更多相关C++ STL遍历算法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C++语言实现拼图游戏详解

    C++语言实现拼图游戏详解

    这篇文章主要为大家详细介绍了C++基于EasyX库实现拼图小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • C/C++多态深入探究原理

    C/C++多态深入探究原理

    多态按字面的意思就是多种形态。当类之间存在层次结构,并且类之间是通过继承关联时,就会用到多态。C++ 多态意味着调用成员函数时,会根据调用函数的对象的类型来执行不同的函数
    2022-06-06
  • C语言详解冒泡排序实现

    C语言详解冒泡排序实现

    冒泡排序是一种简单的排序算法,它也是一种稳定排序算法。其实现原理是重复扫描待排序序列,并比较每一对相邻的元素,当该对元素顺序不正确时进行交换。一直重复这个过程,直到没有任何两个相邻元素可以交换,就表明完成了排序
    2022-04-04
  • c++读取excel的代码详解

    c++读取excel的代码详解

    在本篇文章里小编给大家分享的是一篇关于c++读取excel的代码详解内容,需要的朋友们可以学习参考下。
    2020-02-02
  • C++中的多态详谈

    C++中的多态详谈

    多态通俗来说就是多种形态,本文通过实例代码给大家介绍C++中的多态定义及实现,通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2021-05-05
  • 浅谈c++11闭包的实现

    浅谈c++11闭包的实现

    闭包有很多种定义,一种说法是,闭包是带有上下文的函数。说白了,就是有状态的函数。更直接一些,不就是个类吗?换了个名字而已。本文将介绍c++11闭包的实现,感兴趣的同学,可以参考下。
    2021-06-06
  • C++无法重载点符号、::、sizeof等的原因

    C++无法重载点符号、::、sizeof等的原因

    这篇文章主要介绍了C++无法重载点符号、::、sizeof等的原因的相关资料,需要的朋友可以参考下
    2016-05-05
  • vs2019配置C++版OpenCV的方法步骤

    vs2019配置C++版OpenCV的方法步骤

    最近要用到很多OpenCV的库,所以开始学了点OpenCV,本文记录VS和OpenCV的安装、配置过程。具有一定的参考价值,感兴趣的可以了解一下
    2021-09-09
  • C++基于随机数实现福彩双色球的方法示例

    C++基于随机数实现福彩双色球的方法示例

    这篇文章主要介绍了C++基于随机数实现福彩双色球的方法,结合完整实例形式分析了C++随机数算法的实现与使用技巧,需要的朋友可以参考下
    2017-06-06
  • C语言数据结构 link 链表反转的实现

    C语言数据结构 link 链表反转的实现

    这篇文章主要介绍了C语言数据结构 link 链表反转的实现的相关资料,希望通过本文能帮助到大家,需要的朋友可以参考下
    2017-09-09

最新评论