gpt4 book ai didi

c++ - 检查两个 vector 之间的差异

转载 作者:太空宇宙 更新时间:2023-11-04 14:50:10 25 4
gpt4 key购买 nike

假设您有 2 个 vector ,比如说 v1v2具有以下值:

v1 = {8,4,9,9,1,3};
v2 = {9,4,3,8,1,9};

检查它们是否“相等”的最 STL 方法是什么?我将“相等”定义为无论顺序如何,内容都相同。我宁愿不排序就这样做。

我倾向于 build 两个 std::map<double, int>计算 vector 的每个元素。

我只需要算法中的 bool 值是/否。

你怎么说?

Stack Overflow 上的其他对话诉诸于对 vector 进行排序,我宁愿避免这种情况。因此这个新线程。

最佳答案

I was leaning towards building two std::map to count up each of the vector's elements.

这将比仅创建排序 vector 慢得多。 (另请注意,std::map 由排序提供支持;它只是使用红黑树或 AVL 树来实现)映射是针对均匀混合优化的数据结构插入和查找;但是您的用例是一大堆插入,然后是一大堆没有重叠的查找。

我只会对 vector 进行排序(或者复制并排序这些 vector ,如果不允许销毁源拷贝),然后使用 vector 的内置 operator ==

关于c++ - 检查两个 vector<T> 之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13575748/

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