Tengo este programa de ejemplo de un paso que quiero implementar en mi aplicación. Quiero push_back los elementos int en la cadena por separado, en un vector. ¿Cómo puedo?Pasar de string a stringstream a vector <int>
#include <iostream>
#include <sstream>
#include <vector>
using namespace std;
int main(){
string line = "1 2 3 4 5"; //includes spaces
stringstream lineStream(line);
vector<int> numbers; // how do I push_back the numbers (separately) here?
// in this example I know the size of my string but in my application I won't
}
Este es un ejemplo perfecto, en mi humilde opinión, de cuál es incorrecto con C++. En prácticamente cualquier otro idioma, esto sería una división en '', seguida de algo como .toInt() para cada elemento. En cambio, tenemos una colección inmensamente complicada de algoritmos templados que se están aplicando. – dicroce
Escucho lo que dices dicroce. OTOH, este enfoque más complicado es más rápido, ya que evitas crear una matriz temporal o una lista de cadenas, y también más poderoso: se podría usar mucho el mismo código para copiar cualquier tipo de "rango de valores" (representado por un par de iteradores) en un vector. –
C++ 11: 'vector números (istream_iterator (lineStream), {});' –