Un buon esempio per boost :: algoritmo :: join


116

Recentemente ho voluto utilizzare boost :: algoritmo :: join ma non sono riuscito a trovare alcun esempio di utilizzo e non volevo investire molto tempo nell'apprendimento della libreria Boost Range solo per utilizzare questa funzione.

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


30
Quando si cercano esempi per la libreria boost "foo", è spesso una buona idea guardare boost / libs / foo / examples e boost / libs / foo / test. Nel presente caso, potresti guardare boost / libs / algoritmo / string / test / join_test.cpp
Éric Malenfant

Risposte:


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

Produzione:

Hello, World!

4
Può supportare tipi personalizzati? Ad esempio, la classe Aha un metodo ToStringche restituisce un stringvalore. Posso usare joinper unirmi a una vector<A>chiamando ToStringsu ogni elemento?
Ken Zhang

43
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"

7
Questa risposta mostra uno sforzo minore rispetto a quella precedente e non fornisce alcun valore aggiunto. Perché è ancora presente qui?
arekolek
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.