Un bon exemple pour boost :: algorithm :: join

116

J'ai récemment voulu utiliser boost :: algorithm :: join mais je n'ai trouvé aucun exemple d'utilisation et je ne voulais pas investir beaucoup de temps dans l'apprentissage de la bibliothèque Boost Range juste pour utiliser cette fonction.

Quelqu'un peut-il fournir un bon exemple d'utilisation de la jointure sur un conteneur de chaînes? Merci.

Dan Hook
la source
30
Lorsque vous cherchez des exemples pour la bibliothèque boost "foo", il est souvent judicieux de regarder boost / libs / foo / examples et boost / libs / foo / test. Dans le cas présent, vous pouvez regarder boost / libs / algorithm / string / test / join_test.cpp
Éric Malenfant

Réponses:

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

Production:

Hello, World!
Tristram Gräbener
la source
4
Peut-il prendre en charge les types personnalisés? Par exemple, la classe Aa une méthode ToStringqui renvoie une valeur, stringpuis-je utiliser joinpour joindre un vector<A>en appelant ToStringchaque élément?
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"
KeatsPeeks
la source
7
Cette réponse montre moins d'efforts que l'ancienne et n'apporte aucune valeur ajoutée. Pourquoi est-il toujours présent ici?
arekolek