我有两个std::stringstream:ss1ss2,它们是两个不同的函数的参数,这些函数用数据填充了它们。

我想检查这些功能是否写入相同的内容。如何测试两个std::stringstream的相等性?

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

if(ss1 != ss2) {
   cout << "Content not identical!" << endl;
}

不起作用。将它们都转换为str()是可行的,但这似乎无效。一定会有更好的办法?

最佳答案

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

if (ss1.str() != ss2.str()) {
  cout << "Content not identical!" << endl;
}

我不确定这是否特别快,但是除非您处于嵌入式环境中,或者您每秒要检查数百万次比较,这无关紧要。

10-08 11:23