Use std::transform()
and specify a binary operation function. For example:
#include <iostream>
#include <vector>
#include <algorithm>
struct Wrap
{
int data;
};
Wrap set_data(int a_new_data, Wrap a_wrap)
{
a_wrap.data = a_new_data;
return a_wrap;
}
int main()
{
int a[10] = { 2345, 6345, 3, 243, 24, 234 };
const size_t A_SIZE = sizeof(a) / sizeof(a[0]);
std::vector<Wrap> vw(A_SIZE);
std::transform(a, a + A_SIZE, vw.begin(), vw.begin(), set_data);
std::cout << vw[0].data << ','
<< vw[1].data << ','
<< vw[5].data << ','
<< vw[9].data << '\n';
return 0;
}
See demo at http://ideone.com/DHAXWs .