有没有一种方法可以在不考虑顺序的情况下比较两个字符串的内容?例如,edcc
和cdce
为真,因为每个字母的频率与字母本身匹配
例如,下面的情况应该是正确的。
std::string s1 = "Hello World";
std::string s2 = "World Hello";
下面的代码看起来与EXPECT_EQ(s1, s2)
等效,但是有没有办法只验证其内容?
EXPECT_THAT(s1, ContainerEq(s2));
下面的方法不起作用,因为它似乎只适用于向量、数组等容器。
EXPECT_THAT(s1, UnorderedElementsAre(s2));
我还尝试了以下无效尝试
std::vector<char> vec1(s1.begin(), s1.end());
std::vector<char> vec2(s2.begin(), s2.end());
EXPECT_THAT(vec1, UnorderedElementsAreArray(vec2));
1条答案
按热度按时间nkcskrwz1#
一种方法是使用
std::multiset
或std::set
: