#include <iostream>
#include <vector>
#include <algorithm>
int customOperation(int a, int b) {
return a > b? a + b : a - b;
}
std::vector<int> performOperation(const std::vector<int>& vec1, const std::vector<int>& vec2) {
std::vector<int> result(vec1.size());
std::transform(vec1.begin(), vec1.end(), vec2.begin(), result.begin(), customOperation);
return result;
}
int main() {
std::vector<int> vec1 = {1, 3, 5};
std::vector<int> vec2 = {2, 4, 4};
std::vector<int> result = performOperation(vec1, vec2);
for (int num : result) {
std::cout << num << " ";
}
std::cout << std::endl;
return 0;
}
性能优化点
- 并行化:如果数据量较大,可以使用并行版本的
std::transform
,例如在C++17及以上版本中,可以使用execution::par
策略来并行执行std::transform
操作,提高处理速度。
- 避免不必要的内存分配:在这个例子中,预先分配
result
向量的大小可以避免在std::transform
过程中多次重新分配内存,提升性能。如果已知向量大小不会改变,尽量避免动态扩容操作。