日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

C++?STL中的常用遍歷算法分享_C 語言

作者:莫淺子 ? 更新時間: 2023-01-21 編程語言

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();
}

運行結果

原文鏈接:https://ywy666.blog.csdn.net/article/details/128194117

欄目分類
最近更新