要编写一个编程模板对象,你需要使用C++的模板语法。模板允许你定义与数据类型无关的代码,从而可以创建通用的函数或类。下面是一个简单的示例,展示了如何定义和使用一个模板函数对象:
```cpp
include include include // 定义一个模板函数对象 template class MyFunctor { public: T operator()(const T& a, const T& b) const { return a + b; } }; int main() { // 使用模板函数对象对整数向量进行操作 std::vector std::vector MyFunctor std::vector std::transform(nums1.begin(), nums1.end(), nums2.begin(), result1.begin(), add); // 输出结果 std::cout << "Result1: "; for (int num : result1) { std::cout << num << " "; } std::cout << std::endl; // 使用模板函数对象对浮点数向量进行操作 std::vector std::vector std::vector std::transform(nums3.begin(), nums3.end(), nums4.begin(), result2.begin(), add); // 输出结果 std::cout << "Result2: "; for (double num : result2) { std::cout << num << " "; } std::cout << std::endl; return 0; } ``` 代码解析 ```cpp template class MyFunctor { public: T operator()(const T& a, const T& b) const { return a + b; } }; ``` 这里定义了一个模板类 `MyFunctor`,其中 `T` 是一个类型参数。`operator()` 成员函数定义了该类的行为,即对两个 `T` 类型的参数进行相加。 ```cpp std::vector std::vector MyFunctor std::vector std::transform(nums1.begin(), nums1.end(), nums2.begin(), result1.begin(), add); ``` 在这个例子中,我们创建了两个整数向量 `nums1` 和 `nums2`,并使用 `MyFunctor ```cpp std::cout << "Result1: "; for (int num : result1) { std::cout << num << " "; } std::cout << std::endl; ``` 这段代码输出 `result1` 的内容,显示两个整数向量的和。 通过这种方式,你可以使用模板来创建通用的函数或类,从而编写与数据类型无关的代码。模板提供了一种强大的机制来实现泛型编程,使得代码更加灵活和可重用。模板类定义
使用模板函数对象
输出结果