我有许多不同大小的 vector 容器,每个容器都包含 double 。 我想添加每个 vector 的元素来创建一个 vector double 。这个简单的例子将举例说明我在说什么:
考虑具有三个元素 3.0 2.0 1.0 的两个 vector A 和具有两个元素的 B 2.0 1.0。我想从最后一个元素开始添加两个 vector 并工作 向后。这将给出一个包含条目 3.0 4.0 2.0 的数组 C。
最优雅/最有效的方法是什么?
谢谢!
最佳答案
一旦你知道你有一个比另一个大的 vector
std::vector<double> new_vector = bigger_vector; // Copy the largest
std::transform(smaller_vector.rbegin(), smaller_vector.rend(), // iterate over the complete smaller vector
bigger_vector.rbegin(), // 2nd input is the corresponding entries of the larger vector
new_vector.rbegin(), // Output is the new vector
std::plus<double>()); // Add em
这很好,因为您不必执行任何循环缩进,并且可以在任何支持反向迭代器的序列容器上工作。
关于c++ - 在 C++ 中添加不同大小的 double vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3610459/