Concatenate boost::array and std::string

Concatenate boost::array and std::string

本文关键字:std string and array boost Concatenate      更新时间:2023-10-16

我有 2 个提升数组:

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

我需要用一个字符串将它们连接在一起:

std::string this_string = "abc";

因此最终结果将是"123abc456"

这将如何完成?

最好的方法是使用 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");

这比连接字符串更有效,并且简单/直接理解。

您可以重载'+'以进行boost::arraystd::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