2009-12-02 3 views
96

Recentemente ho voluto usare boost::algorithm::join ma non sono riuscito a trovare alcun esempio di utilizzo e non ho voluto investire molto tempo per imparare la libreria Boost Range solo per usare questo una funzioneUn buon esempio per boost :: algorithm :: join

Qualcuno può fornire un buon esempio di come utilizzare join su un contenitore di stringhe? Grazie.

+29

Quando alla ricerca di esempi di libreria Boost "foo", è spesso una buona idea di guardare Boost/librerie/pippo/esempi e Boost/libs/foo/test. Nel caso in questione, potresti dare un'occhiata a boost/libs/algorithm/string/test/join_test.cpp –

risposta

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; 
} 

uscita:

Hello, World! 
+1

Semplice ma utile! –

+0

Può supportare tipi personalizzati? Ad esempio, la classe 'A' ha un metodo' ToString' che restituisce un valore 'stringa'. Posso usare' join' per unire a 'vector ' chiamando 'ToString' su ogni 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

Wow, per 2 minuti dopo la risposta di @ Tristram, hai perso così tanti voti positivi. Chiedi +1 a me. – jmc

+1

Questa risposta mostra uno sforzo minore rispetto a quello precedente e non fornisce alcun valore aggiunto. Perché è ancora presente qui? – arekolek