函数对象(for_each)未解决

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了函数对象(for_each)未解决相关的知识,希望对你有一定的参考价值。

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

//类模版函数
template <typename T>
class Obj
{
public:
	Obj()
	{
		n = 0;
	}
	void operator()(T & t)
	{
		n++;
		cout << t << endl;
	}
	void PtintN()
	{
		cout << n << endl;
	}
public:
	int n;
};

//模板函数
template <typename T>
void FuncprintT( T &t1)
{
	cout << t1 << endl;
}

//普通函数
void Funcprintt(int &t2)
{
	cout << t2 << endl;
}
int main01()
{
	int tem = 10;
	Obj<int > o1;//类模版
	o1(tem);
	FuncprintT<int>(tem);
	FuncprintT(tem);

	return 0;
}
int main02()
{
	vector<int > v1;
	v1.push_back(1);
	v1.push_back(2);
	v1.push_back(3);

	for_each(v1.begin(), v1.end(), Obj<int>());
	for_each(v1.begin(), v1.end(), FuncprintT<int>);
	int tem2 = 10;

	cout << " 这里是运用 函数对象作为for_each的第三个对象:\n";
	Obj<int > otem;
	for_each(v1.begin(), v1.end(), otem);//这里有疑问?遗留问题,不是每一个运算符重载都自动运行的
	//for_each(v1.begin(), v1.end(), Obj<int > otem2); 这个为什么是错误的?

	otem.PtintN();
	return 0;
}

int main()
{
	//main01();
	main02();
	system("pause");
}

  

以上是关于函数对象(for_each)未解决的主要内容,如果未能解决你的问题,请参考以下文章

错误代码:错误域 = NSCocoaErrorDomain 代码 = 3840“JSON 文本没有以数组或对象和允许未设置片段的选项开头。”

C++ STL for_each 的用法?

使用 std::for_each lambda 函数的错误

lambda表达式和for_each

(Cocoa 错误 3840。)”(JSON 文本没有以数组或对象开头,并且允许未设置片段的选项。)

如何计算 std::for_each lambda 函数所需的类型