Um bom exemplo para boost :: algorithm :: join


116

Recentemente, quis usar boost :: algorithm :: join, mas não consegui encontrar nenhum exemplo de uso e não queria investir muito tempo aprendendo a biblioteca Boost Range apenas para usar essa função.

Alguém pode fornecer um bom exemplo de como usar join em um contêiner de strings? Obrigado.


30
Ao procurar exemplos para a biblioteca boost "foo", geralmente é uma boa idéia olhar para boost / libs / foo / examples e boost / libs / foo / test. No caso presente, você pode olhar para boost / libs / algorithm / string / test / join_test.cpp
Éric Malenfant

Respostas:


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

Resultado:

Hello, World!

4
Ele pode suportar tipos personalizados? Por exemplo, a classe Atem um método ToStringque retorna um stringvalor. Posso usar joinpara ingressar em um vector<A>chamando ToStringem cada 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
Esta resposta mostra menos esforço do que a anterior e não oferece valor agregado. Por que ainda está presente aqui?
arekolek
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.