我有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;
如何做到这一点?
答案 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