template<typename T,void(*f)(T &v)>
void foreach(T array[],unsigned size)
{
for (int i = 0; i < size; ++i)
{
f(array[i]);
}
}
template<typename T>
void inc(T &v){++v;}
template<typename T>
void dec(T &v){--v;}
template<typename T>
void print(T &v){cout<<" "<<v;}
int main(int argc, char const *argv[])
{
/* code */
int array[]={1,2,3,4,5,1,2,6,7};
foreach<int,print<int>>(array,9);
cout<<endl;
foreach<int,inc<int>>(array,9);
foreach<int,print<int>>(array,9);
cout<<endl;
foreach<int,dec<int>>(array,9);
foreach<int,print<int>>(array,9);
cout<<endl;
system("pause");
return 0;
}
本文展示了一个使用C++模板函数实现数组元素遍历及操作的例子。通过定义通用的foreach函数模板,配合不同的操作函数如增减和打印,演示了如何灵活地处理不同类型的数据。此方法提高了代码复用性和维护性。
557

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



