连接boost :: array和std :: string

时间:2014-11-26 14:21:50

标签: c++ arrays string boost concatenation

我有2个增强阵列:

boost::array<int, 3> a = [1, 2, 3];
boost::array<int, 3> b = [4, 5, 6];

我需要将它们与字符串连接起来:

std::string this_string = "abc";

以便最终结果为&#34; 123abc456&#34;

如何做到这一点?

2 个答案:

答案 0 :(得分:4)

最好的方法是使用ostringstream实例作为缓冲区:

std::ostringstream buffer;
for(auto x: a)
    buffer << x;
buffer << this_string;
for(auto x: b)
    buffer << x;
std::string result = buffer.str();
assert(result == "123abc456");

这比连接字符串更简单,更简单/直接易懂。

答案 1 :(得分:1)

您可以为'+'boost::array重载std::string并使用以下内容std::to_string

template<typename T, std::size_t N>
std::string operator+ ( const boost::array<T,N>& arr, const std::string & x )
{
    std::string s;
    for( const auto& i:arr)
    {
       s += std::to_string(i) ;
    }

    return s+x ;
}

请参阅here