2009-12-02 52 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