📌  相关文章
📜  用于不同元素数组中第三大元素的 C++ 程序(1)

📅  最后修改于: 2023-12-03 14:56:19.037000             🧑  作者: Mango

用于不同元素数组中第三大元素的 C++ 程序

在处理数组时,有时需要查找元素中第三大的元素。本文将介绍一种用于不同元素数组中第三大元素的 C++ 程序。

程序思路

我们可以使用 STL 中的 set 容器实现此功能。set 容器是一个具有自动排序和去重功能的容器,可以通过 set 中元素的下标来访问指定元素。

通过遍历给定的数组,我们将数组中所有元素添加到 set 中。由于 set 可以自动去重,因此在添加元素时重复的元素将被忽略。

由于我们只需要第三大的元素,我们可以从 set 中访问第三个元素的下标来获取所需元素。

代码实现

下面是该 C++ 程序的代码实现:

#include <iostream>
#include <set>

using namespace std;

int main()
{
    set<int> s;
    int arr[] = { 10, 20, 30, 40, 50 };
    int n = sizeof(arr) / sizeof(arr[0]);

    // 添加所有数组元素到 set
    for (int i = 0; i < n; i++) {
        s.insert(arr[i]);
    }

    // 访问第三大的元素
    int thirdLargestElement;
    if (s.size() >= 3) {
        set<int>::iterator it = s.begin();
        advance(it, s.size() - 3); // 使用 advance 函数移动 set 迭代器
        thirdLargestElement = *it;
    }

    // 输出结果
    cout << "Third largest element is: " << thirdLargestElement << endl;

    return 0;
}
代码解释

首先,我们包含两个头文件 iostreamsetiostream 实现了基本的输入/输出设施,而 set 是实现该程序的容器。

接下来,我们声明了一个 std 命名空间,以免繁琐地输入 std::

然后,我们创建了一个 set<int> 类型的变量 s,该变量将用于存储我们的数组中的元素。

接着,我们创建一个整型数组 arr,其中包含了一些随机的元素。我们还定义了一个整型变量 n,并将其设置为数组 arr 的大小。

然后,我们使用 for 循环遍历整个数组,并将每个元素插入到 set 中。

接着,我们通过设置一个整型变量thirdLargestElement,来访问set中第三大的元素。我们使用if条件语句来检查set中是否至少有三个元素。如果是的话,我们将使用set::iterator指针it来访问set的末尾,并将指针移到倒数第三个元素。最后,我们将该元素赋给thirdLargestElement

最后,我们输出基于thirdLargestElement的结果。如果您需要,您可以将此代码改为将第三大的元素存储在一个数组中以便后续使用。

总结

set 容器提供了很多有用的功能,包括去除数组中的重复项,并按顺序存储元素。通过使用 STL 中的 set 容器,我们可以轻松快速地找到数组中第三大的元素,并大大减少了编写此功能所需的代码量。