2009-12-02 55 views
96

的一个很好的例子我最近想要使用 boost::algorithm::join,但我找不到任何用法示例,我不想投入大量时间来学习Boost Range库,只是为了使用它一个功能。boost :: algorithm :: join

任何人都可以提供一个很好的示例如何使用字符串的容器上的联接?谢谢。

+29

当寻找例子为Boost库 “富”,它往往是一个好主意,看看升压/库/富/例子和升压/库/富/测试。在本例中,你可以看看boost/libs/algorithm/string/test/join_test.cpp – 2009-12-02 15:15:34

回答

191
#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! 
+1

简单但有用! – 2014-07-02 17:24:51

+0

它可以支持自定义类型吗?例如,类'A'有一个方法'ToString',它返回'string'的值。我可以通过调用每个元素的'ToString'来使用'join'加入'vector '? – 2018-02-08 02:56:57

39
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" 
+9

哇,在@Tristram的回答后2分钟,你错过了这么多upvotes。从我的+1。 – jmc 2014-05-23 13:55:31

+1

这个答案显示比较旧的答案更少的努力,并且没有提供附加价值。为什么它仍然存在? – arekolek 2016-08-05 14:46:51