копирование с преобразованием
Необходимо вызвать функцию копирования с преобразованием. С ее помощью скопировать все элементы первого вектор во второй, где каждое значение из первого вектора умножено на 10. Первый вектор должен остаться неизменным.
С копированием все понятно, но я не могу найти такую функцию с преобразованием в плюсах. Такая вообще есть?
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
vector<int> a;
...
vector<int> b(a.size());
transform(a.begin(),a.end(),b.begin(),[](int x){ return x*10; });
Или, как вариант совсем без "своего" кода:
vector<int> v = { 1,2,3,4,5,6,7 };
vector<int> r;
transform(v.begin(),v.end(),back_inserter(r),
bind(multiplies<int>(),placeholders::_1,10));
Хотя лично для меня проще и понятнее
vector<int> v = { 1,2,3,4,5,6,7 };
vector<int> r;
for(auto x: v) r.push_back(x*10);