检查数组是否有相同的条目

时间:2014-04-23 12:26:35

标签: c++ arrays find elements

我有两个双打阵列。将对一个数组进行排序,之后我想检查原始数组的每个元素是否仍在排序数组中。我使用了C ++的find()函数,但是这个指针只指向找到的第一个元素,例如:如果你有原始的数组{1,1,1,1},那么排序的是{1,1,1,1}但是find()只指向第一个元素。

我是否真的需要遍历原始数组并计算元素出现的次数,然后遍历已排序的数组并执行相同的操作?

2 个答案:

答案 0 :(得分:2)

由于您只想检查数组是否已正确排序,您可以使用std::sort对其他数组进行排序,该数组可以正常工作,然后比较结果:

your_sort(first_array);
std::sort(second_array.begin(),second_array.end());

bool sort_worked = std::equal(first_array.begin(),first_array.end(),
        second_array.begin());

万一你不知道:

每个标准库容器都有begin()end()成员函数。 您应该始终使用它们,如果您有充分的理由,请使用std::vector作为默认数据结构,使用另一个标准容器。不要使用C风格的数组。

答案 1 :(得分:0)

find()函数返回指向第一次出现的指针 范围内的所需元素。

    std::find(first, last, value_to_be_searched)

如果找不到该元素,则返回' last'。你可以循环你的 第一个数组,只需检查每个元素的find函数 返回与“最后”不同的内容在第二个阵列上调用时。