提交 c3e6cdc3 编写于 作者: B Brian Johnson

Optimization for string. GH #2350

上级 c200c0a9
...@@ -225,18 +225,19 @@ inline datastream<Stream>& operator>>(datastream<Stream>& ds, checksum256& d) { ...@@ -225,18 +225,19 @@ inline datastream<Stream>& operator>>(datastream<Stream>& ds, checksum256& d) {
template<typename DataStream> template<typename DataStream>
DataStream& operator << ( DataStream& ds, const std::string& v ) { DataStream& operator << ( DataStream& ds, const std::string& v ) {
ds << unsigned_int( v.size() ); ds << unsigned_int( v.size() );
for( const auto& i : v ) if (v.size())
ds << i; ds.write(v.data(), v.size());
return ds; return ds;
} }
template<typename DataStream> template<typename DataStream>
DataStream& operator >> ( DataStream& ds, std::string& v ) { DataStream& operator >> ( DataStream& ds, std::string& v ) {
unsigned_int s; std::vector<char> tmp;
ds >> s; ds >> tmp;
v.resize(s.value); if( tmp.size() )
for( auto& i : v ) v = std::string(tmp.data(),tmp.data()+tmp.size());
ds >> i; else
v = std::string();
return ds; return ds;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册