1. 结构体模版:
如下面的struct show, 模版参数为S, 生成一个模版对象函数,输出为1,2,3.
template <typename S>
struct show
{
void operator()(const S& element) const
{
cout<<element<<endl;
}
};
int main()
{
int a[3]={1,2,3};
for_each(a,a+4,show<int>()); //先使用结构体模版定义一种结构体show<int>,再通过此结构体默认构造函数创建一个对象,调用其函数对象
int n;
cin>>n;
return 0;
}
2. 函数对象
如,下面的Add结构体定义了一个sum变量、一个不带参数的默认构造函数、一个带参数的构造函数,以及一个函数对象(对结构体变量修改)。
struct Add
{
int sum;
Add()
{
}
Add( int x)
{
sum=x; &n

本文介绍了C++中的结构体模板和函数对象。结构体模板`show`用于输出元素,`for_each`遍历数组并调用。函数对象`Add`带有累加功能,可以通过不同方式初始化`sum`并应用于`for_each`中,展示其作为函数对象的特性。
最低0.47元/天 解锁文章
1214

被折叠的 条评论
为什么被折叠?



