Dobry przykład dla boost ::gorithm :: join

116

Niedawno chciałem użyć boost :: algorytm :: join, ale nie mogłem znaleźć żadnych przykładów użycia i nie chciałem poświęcać dużo czasu na naukę biblioteki Boost Range tylko po to, aby użyć tej jednej funkcji.

Czy ktoś może podać dobry przykład, jak używać sprzężenia w kontenerze ciągów? Dzięki.

Dan Hook
źródło
30
Szukając przykładów biblioteki boost „foo”, często dobrym pomysłem jest przejrzenie plików boost / libs / foo / examples i boost / libs / foo / test. W tym przypadku możesz spojrzeć na boost / libs /gorithm / string / test / join_test.cpp
Éric Malenfant

Odpowiedzi:

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

Wynik:

Hello, World!
Tristram Gräbener
źródło
4
Czy obsługuje niestandardowe typy? Na przykład klasa Ama metodę, ToStringktóra zwraca wartość. stringCzy mogę użyć joindo dołączenia do vector<A>, wywołując ToStringkażdy 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
źródło
7
Ta odpowiedź pokazuje mniejszy wysiłek niż starsza i nie zapewnia żadnej wartości dodanej. Dlaczego nadal jest tutaj obecny?
arekolek