(11)C++算法---transform,std::for_each

遍歷容器執行某一算法的快捷用法 

#include <iostream>
#include <thread>
#include <algorithm>
#include <functional>
#include <numeric>
#include <vector>
using namespace std;

int myPlus(int a,int b)
{
	return a + b ;
}

void print(int a)
{
	cout << a << endl;
}

int ToLower(int c)
{
	if (isupper(c)) ///c語言基礎庫函數
	{
		return c + 32;
	}
	else
		return c;
}

int main()
{
	vector<int> vec = { 1,2,3,4,5,6,7,8 };
	vector<int> vec1 = { 10,20,30,40,50,60,70,80 }; 

	int arr[8];
	transform(vec.begin(), vec.end(), vec1.begin(), arr, std::plus<int>());


	vector<int> vec_result(8);//指定vector的長度,默認初始值0
	transform(vec.begin(), vec.end(),vec1.begin(),vec_result.begin(), myPlus);

	std::for_each(vec_result.begin(), vec_result.end(), print); //沒有返回值的容器遍歷算法

	string str("aaBBccDD");
	string result_str;
	result_str.resize(str.size());
	transform(str.begin(), str.end(), result_str.begin(), ToLower);//有返回值的容器遍歷算法



	system("pause");

	return 0;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章