STL中常用的C++语法
作者:网络转载 发布时间:[ 2015/11/6 11:22:23 ] 推荐标签:.NET 测试开发技术
函数调用操作(c++语法中的左右小括号)可以被重载,STL的特殊版本都以仿函数形式呈现。如果对某个class进行operator()重载,它成为一个仿函数。
#include <iostream>
using namespace std;
template<class T>
struct Plus
{
T operator()(const T& x, const T& y)const
{
return x + y;
}
};
template<class T>
struct Minus
{
T operator()(const T& x, const T& y)const
{
return x - y;
}
};
int main()
{
Plus<int>plusobj;
Minus<int>minusobj;
cout << plusobj(3, 4) << endl;
cout << minusobj(3, 4) << endl;
//以下直接产生仿函数的临时对象,并调用
cout << Plus<int>()(43, 50) << endl;
cout << Minus<int>()(43, 50) << endl;
system("pause");
return 0;
}
产生临时对象的方法:在类型名称后直接加一对小括号,并可指定初值。stl常将此技巧应用于仿函数与算法的搭配上。
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
/*
template <class InputIterator,class Function>
Function for_each(InputIterator first, InputIterator last, Function f)
{
for (; first != last; ++first)
{
f(*first);
}
return f;
}
*/
template <typename T>
class print
{
public:
void operator()(const T& elem)
{
cout << elem << ' ' << endl;
}
};
int main()
{
int ia[6] = { 0,1,2,3,4,5 };
vector<int>iv(ia, ia + 6);
for_each(iv.begin(), iv.end(), print<int>());
system("pause");
return 0;
}
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11