有没有可能将char向量转换为std::stringstream
?例如:
std::vector<unsigned char> data;
std::stringstream st(????);
有没有办法将
data
的值赋给st
?有没有可能将char向量转换为std::stringstream
?例如:
std::vector<unsigned char> data;
std::stringstream st(????);
data
的值赋给st
?如果我们查看std::stringstream
的构造函数,我们可以看到第二个是:
explicit basic_stringstream( const std::basic_string<CharT,Traits,Allocator>& str,
ios_base::openmode mode = ios_base::in|ios_base::out );
basic_string
的构造函数包括:
template< class InputIt >
basic_string( InputIt first, InputIt last,
const Allocator& alloc = Allocator() );
因此,我们可以这样做:
std::vector<unsigned char> data(20);
std::stringstream st(std::string(data.begin(), data.end()));
vec
向量和strstr
(o)字符串流:copy(vec.begin(), vec.end(), ostream_iterator<char>(strstr));
std::stringstream st(data.data());
std :: string
。
Barry建议在其答案中显式构造std :: string
。std :: vector<unsigned char> data
以空字符结尾,则可以利用隐式构造。 您只需要更改为可以从std :: string
构造的内容即可。std::stringstream st(reinterpret_cast<char*>(data.data()));
一个可能更简单的解决方案是将 std::vector<unsigned char> data
的类型更改为 std::vector<char> data
。在这种情况下,不需要进行转换:
std::stringstream st(data.data());
ss.str(str);",它可以工作,但我正在寻找从向量直接转换为stringstream的方法。
- Rahul_cs12