2009-12-02 9 views
96

recientemente que quería utilizar boost::algorithm::join pero no pudo encontrar ningún ejemplo de utilización y yo no quería invertir mucho tiempo en aprender la biblioteca Rango Boost sólo para utilizar este una funciónUn buen ejemplo de algoritmo de impulso :: :: unirse

¿Puede cualquier persona proporcionar un buen ejemplo de cómo utilizar unirse en un recipiente de cadenas? Gracias.

+29

Al buscar ejemplos de la biblioteca de impulso "foo", a menudo es una buena idea mirar realce/libs/foo/ejemplos y realce/libs/foo/prueba. En el presente caso, usted podría mirar a realce/libs/algoritmo/cadena/test/join_test.cpp –

Respuesta

191
#include <boost/algorithm/string/join.hpp> 
#include <vector> 
#include <iostream> 

int main() 
{ 
    std::vector<std::string> list; 
    list.push_back("Hello"); 
    list.push_back("World!"); 

    std::string joined = boost::algorithm::join(list, ", "); 
    std::cout << joined << std::endl; 
} 

Salida:

Hello, World! 
+1

simple pero útil! –

+0

¿Puede admitir tipos personalizados? Por ejemplo, la clase 'A' tiene un método' ToString' que devuelve un 'value.Can string' utilizo' join' para unirse a un vector '' llamando 'ToString' en cada elemento? –

39
std::vector<std::string> MyStrings; 
MyStrings.push_back("Hello"); 
MyStrings.push_back("World"); 
std::string result = boost::algorithm::join(MyStrings, ","); 

std::cout << result; // prints "Hello,World" 
+9

Vaya, por el bien de 2 minutos después de la respuesta de Tristram @ te has perdido en tantos upvotes. Ten +1 de mi parte – jmc

+1

Esta respuesta muestra menos esfuerzo que el más antiguo y no tiene ningún valor. ¿Por qué todavía está presente aquí? – arekolek

Cuestiones relacionadas