比较std :: stringstream的内容

Ynk*_*kDK 1 c++ compare stringstream c++11

我有两个std::stringstream:ss1ss2,它们作为两个不同函数的参数给出,这些函数用数据填充它们.

我想要理智地检查这些函数是否写入相同的内容.我如何测试两个相等std::stringstream

alg1.print(ss1);
alg2.print(ss2);

if(ss1 != ss2) {
   cout << "Content not identical!" << endl;
}
Run Code Online (Sandbox Code Playgroud)

不行.将它们转换为str()工作,但这似乎无效.肯定有更好的办法?

gab*_*bry 7

我认为唯一的方法是使用.str()方法:

if (ss1.str() != ss2.str()) {
  cout << "Content not identical!" << endl;
}
Run Code Online (Sandbox Code Playgroud)

我不确定这是否特别快但是如果你在嵌入式环境中或者你每秒检查数百万次比较它应该没关系.