boost :: algorithm :: join的一个很好的例子


116

我最近想使用boost :: algorithm :: join,但是我找不到任何用法示例,也不想花很多时间学习Boost Range库只是为了使用这一功能。

谁能提供一个很好的示例,说明如何在字符串容器上使用join?谢谢。


30
在查找boost库“ foo”的示例时,通常最好看一下boost / libs / foo / examples和boost / libs / foo / test。在目前的情况下,你可以看看升压/库/算法/串/测试/ join_test.cpp
埃里克Malenfant

Answers:


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
它可以支持自定义类型吗?例如,class 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 '16
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.