Un buen ejemplo de boost :: algoritmo :: unirse

116

Recientemente quise usar boost :: algorítm :: join, pero no pude encontrar ningún ejemplo de uso y no quería invertir mucho tiempo en aprender la biblioteca Boost Range solo para usar esta función.

¿Alguien puede proporcionar un buen ejemplo de cómo usar join en un contenedor de cadenas? Gracias.

Dan Hook
fuente
30
Cuando busque ejemplos para la biblioteca boost "foo", a menudo es una buena idea mirar boost / libs / foo / examples y boost / libs / foo / test. En el caso presente, podría mirar boost / libs / algorítm / string / test / join_test.cpp
Éric Malenfant

Respuestas:

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

Salida:

Hello, World!
Tristram Gräbener
fuente
4
¿Puede admitir tipos personalizados? Por ejemplo, la clase Atiene un método ToStringque devuelve un stringvalor ¿Puedo usar joinpara unirme a vector<A>llamando ToStringa 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"
KeatsPeeks
fuente
7
Esta respuesta muestra menos esfuerzo que la anterior y no aporta ningún valor añadido. ¿Por qué sigue presente aquí?
arekolek