gpt4 book ai didi

c++ - 如何轻松检查 std::map 和 std::unordered_map 是否包含相同的元素

转载 作者:可可西里 更新时间:2023-11-01 14:56:43 24 4
gpt4 key购买 nike

我正在编写 Google Test 单元测试,我想检查 unordered_map<std::string, std::string> 的内容是否与 std::map<std::string, std::string> 相同

我不认为std::equal将作为 std::map 中的元素工作是根据一个标准排序的。顺序并不重要。

最佳答案

我认为没有比遍历一张 map 的所有元素并检查它们是否存在于另一张 map 中更好的方法了。如果你也检查元素的数量是否相同,你就会知道 map 是否完全相同。

例如:

template<typename K, typename E>
bool maps_equal(const std::map<K, E> &map, const std::unordered_map<K, E> &unordered_map) {
return
map.size() == unordered_map.size() &&
std::all_of(map.cbegin(), map.cend(), [&](const std::pair<const K, E> &item) {
auto iter = unordered_map.find(item.first);
return iter != unordered_map.end() && iter->second == item.second;
});
}

关于c++ - 如何轻松检查 std::map 和 std::unordered_map 是否包含相同的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39191086/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com