我有一个 CONST 向量,但需要一个函数来读取它。问题是,该函数需要一个 istream。
将向量内的数据传递给此函数的最有效方法是什么?
我尝试了这种方法来防止复制流,但它不起作用,因为我的向量是常量,而 pubsetbuf 需要非常量字符 *。
istringstream is;
const vector<char>& data = GETDATA();
is.rdbuf()->pubsetbuf(&data[0], data.size());
由于流是只读的,我可以转换指针。那安全吗?或者有什么更好的方法?
考虑使用Boost.Iostreams:
#include <boost/iostreams/device/array.hpp>
#include <boost/iostreams/stream.hpp>
using namespace boost::iostreams;
stream<array_source> bs(data.data(), data.size());
std::istream &is = bs;
| 归档时间: | 
 | 
| 查看次数: | 1293 次 | 
| 最近记录: |