online ejemplos descargar definicion caracteristicas c++

c++ - ejemplos - Convirtiendo std:: string en std:: vector<char>



c++ online (2)

No, esa es la manera de hacerlo, inicializando directamente el vector con los datos de la cadena.

Como @ildjarn señala en su comentario, si por alguna razón tu buffer de datos necesita ser terminado en nulo, necesitas agregarlo explícitamente con charvect.push_back(''/0'') .

También tenga en cuenta que, si desea reutilizar el búfer, use la función assign miembro que toma iteradores.

Estoy usando una biblioteca que acepta datos como un vector de char . Necesito pasar una string a la biblioteca.

Pienso en usar std::vector constructor que acepta iteradores para llevar a cabo la conversión, pero me pregunto si existe una mejor manera de hacerlo.

/*Note: json_str is of type std::string*/ const std::vector<char> charvect(json_str.begin(), json_str.end());


Su método de poblar el vector está bien; de hecho, probablemente sea mejor en la mayoría de los casos.

Solo para que sepas, sin embargo, no es la única forma. También podría simplemente copiar el contenido de la string en el vector<char> . Esto será más útil cuando tenga un vector ya instanciado o si desea agregar más datos al final, o en cualquier punto, realmente.

Ejemplo, donde s es std::string y v es std::vector<char> :

std::copy( s.begin(), s.end(), std::back_inserter(v));

Al igual que con el caso del constructor, si necesita un terminador nulo, tendrá que volver a cerrarlo por su cuenta:

v.push_back(''/0'');