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.


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!

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"

7
Ta odpowiedź pokazuje mniejszy wysiłek niż starsza i nie zapewnia żadnej wartości dodanej. Dlaczego nadal jest tutaj obecny?
arekolek
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.