Ein gutes Beispiel für boost :: algorithm :: join

116

Ich wollte kürzlich boost :: algorithm :: join verwenden , konnte aber keine Anwendungsbeispiele finden und wollte nicht viel Zeit in das Erlernen der Boost Range-Bibliothek investieren, nur um diese eine Funktion zu verwenden.

Kann jemand ein gutes Beispiel für die Verwendung von Join für einen Container mit Zeichenfolgen liefern? Vielen Dank.

Dan Hook
quelle
30
Wenn Sie nach Beispielen für die Boost-Bibliothek "foo" suchen, ist es oft eine gute Idee, sich boost / libs / foo / examples und boost / libs / foo / test anzusehen. Im vorliegenden Fall könnten Sie sich boost / libs / algorithm / string / test / join_test.cpp
Éric Malenfant vom

Antworten:

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

Ausgabe:

Hello, World!
Tristram Gräbener
quelle
4
Kann es benutzerdefinierte Typen unterstützen? Zum Beispiel Klasse Averfügt über eine Methode , ToStringdie eine zurück stringvalue.Can ich Verwendung joineines beizutreten vector<A>durch den Aufruf ToStringauf jedes Element?
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
quelle
7
Diese Antwort zeigt weniger Aufwand als die ältere und bietet keinen Mehrwert. Warum ist es hier noch vorhanden?
Arekolek