push_back c++ para que sirve
Algoritmo STL para Vector Add (1)
Lo que desea hacer se puede lograr usando std::transform
. En tu caso:
std::transform(foo.begin(), foo.end(), bar.begin(), foo.begin(), std::plus<int>());
std::transform
es compatible con lambdas, por lo que puedes realizar operaciones más complicadas entre los elementos del vector
.
Digamos que tengo dos vector<int>
s:
vector<int> foo{1, 2, 3};
vector<int> bar{10, 20, 30};
Ahora quiero hacer un vector agregar sobre ellos de modo que el resultado sería:
11
22
33
¿Hay algún algoritmo de STL que maneje esto, o necesito usar un ciclo for
:
for(auto i = 0; i < foo.size(); ++i){
foo[i] += bar[i];
}
Pregunta de bonificación, ¿qué pasa si quiero hacer algo más complicado que agregar, decir que foo
era un vector<string>
y la bar
seguía siendo un vector<int>
. Espero que, si hay un algoritmo STL que puedo usar, ¿también podría ser compatible con lambdas?