2009-12-02 21 views
96

Son zamanlarda boost::algorithm::join kullanmak istedim ama herhangi bir kullanım örneği bulamadık ve sadece bunu kullanmak için Boost Range kütüphanesini öğrenmek çok fazla zaman harcamak istemedim bir işlev.Destek için güzel bir örnek :: algorithm :: join

Herkes bir dizenin kapsayıcısına nasıl bağlanacağına iyi bir örnek verebilir mi? Teşekkürler.

+29

boost kitaplığı "foo" için örnekler arayan, bu boost/libs/foo/örnekler ve boost/libs bakmak iyi bir fikir genellikle/foo/testi. Mevcut durumda, boost/libs/algorithm/string/test/join_test.cpp adresine bakabilirsiniz. –

cevap

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

Çıktı:

Hello, World! 
+1

Basit ama kullanışlı! –

+0

Özel türleri destekleyebilir mi? Örneğin, "A" sınıfı bir "string" değerini döndüren bir ToString yöntemine sahiptir. Her elementte "ToString" öğesini çağırarak bir "vector " öğesine katılmak için 'join' kullanabilir miyim? –