相关疑难解决方法(0)

C++:比较两个向量

有没有办法比较两个向量?

if (vector1 == vector2)
    DoSomething();
Run Code Online (Sandbox Code Playgroud)

注意:目前,这些向量未排序并包含整数值.

c++ stdvector

68
推荐指数
4
解决办法
12万
查看次数

C/C++ - 比较两个列表并查找缺失元素的有效方法

我有两个列表, L 1和 L 2,包含多个元素的数据列表,每个元素都是抽象数据类型(即:)structs。两个列表中的每一个:

  • 可能包含零到一百(含)元素。
  • 不包含重复元素(每个元素都是唯一的)。
  • 可能包含也可能不包含其他列表中的元素(即:L 1和 L 2可能相同,或包含完全不同的元素)。
  • 没有排序。
  • 在最低级别,与std::vector<myStruct>容器一起存储。

我通常期望的是,定期向 L 2添加一个新元素,或者从中减去/删除一个元素。我试图尽可能有效地检测两个列表中的差异(即:用最少的比较):

  • 如果条目不存在以L 2和L是本1,执行一个操作:Handle_Missing_Element()
  • 如果条目存在于 L 2 中但不存在于 L 1 中,则执行另一个操作:Handle_New_Element()

一旦执行了上述检查,L 1 就被设置为等于L 2,并且在将来的某个时间再次检查L 2

我怎样才能找出两个列表之间的差异?我能想到的有两种方法:

  1. 通过每个可能的元素组合比较两个列表。可能是 O(n 2 ) 执行复杂度(可怕)。

bool found;
for i in 1 .. L2->length()
  found = false;
  for j in 1 .. L1->length()
    if (L1[j] == L2[i]
      // Found …
Run Code Online (Sandbox Code Playgroud)

c++ sorting compare list

5
推荐指数
1
解决办法
2万
查看次数

标签 统计

c++ ×2

compare ×1

list ×1

sorting ×1

stdvector ×1