Do you want this?
#include <iostream> // std::cout
#include <iterator> // std::ostream_iterator, std::back_inserter
#include <algorithm> // std::copy, std::transform
#include <vector>
#include <deque>
#include <list>
int main()
{
std::vector<int> vt = { 1, 2, 3, 4, 5 };
std::deque<int> de = { 3, 4, 5, 6, 7 };
std::list<int> out;
std::transform(vt.begin(), vt.end(), de.begin(), std::back_inserter(out),
[](int a, int b) { return a + b; });
std::copy(out.begin(), out.end(), std::ostream_iterator<int>(std::cout, "\n"));
}
Output is:
4
6
8
10
12
I think operator-overload to STL container, such as std::vector
is not good. Instead, you can use std::valarray.