Хороший приклад для boost :: алгоритм :: join


116

Нещодавно я хотів використовувати boost :: алгоритм :: приєднатися, але я не зміг знайти жодних прикладів використання, і не хотів витрачати багато часу на вивчення бібліотеки Boost Range, щоб використовувати цю функцію.

Хтось може надати хороший приклад того, як використовувати приєднання на контейнері струн? Дякую.


30
Шукаючи приклади програми "foo" збільшеної бібліотеки, часто є хорошою ідеєю переглянути boost / libs / foo / приклади та boost / libs / foo / test. У цьому випадку ви можете подивитися boost / libs / алгоритм / string / test / join_test.cpp
Éric Malenfant

Відповіді:


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

Вихід:

Hello, World!

4
Чи може він підтримувати власні типи? Наприклад, у класі Aє метод, ToStringякий повертає значення. stringЧи можу я використовуватись, joinщоб приєднатися до a vector<A>, зателефонувавши ToStringдо кожного елемента?
Кен Чжан

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
Ця відповідь демонструє менше зусиль, ніж стара та не надає додаткової вартості. Чому він все ще присутній тут?
arekolek
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.