📅  最后修改于: 2023-12-03 15:36:35.371000             🧑  作者: Mango
在C++中,可以使用STL(标准模板库)来处理数组中的重复项。通过STL中的set容器,我们可以方便地找到并删除重复项。
STL是C++中的一个重要组成部分,它是一组开源的标准库,包含了丰富的数据结构和算法,使得开发人员可以更快捷地编写高效的程序。
STL库包含了许多常用的容器,例如vector、list、map、set等。这些容器会自动处理内存分配问题,并提供了丰富的数据处理操作,使得开发人员可以在高效和易用之间找到平衡点。
首先,需要包含STL库:
#include <set>
接下来,可以定义一个int型数组,并使用set容器来存储数组中的元素:
int arr[] = {5,2,8,1,9,3,6,7,4,2,8,3,7};
std::set<int> s(arr, arr + sizeof(arr) / sizeof(int));
以上代码中,首先定义了一个未排序的数组arr,包含了13个整数。然后,使用set容器s来存储arr中的元素。注意,这里使用了set的另一个构造函数,该函数使用了指针作为参数,从而使得set容器可以从一个C数组中构造。
现在,可以打印输出set容器中存储的元素:
for (auto iter = s.begin(); iter != s.end(); iter++) {
std::cout << *iter << " ";
}
以上代码使用了STL中的迭代器,遍历了set容器中的所有元素,并将它们输出到标准输出流(即屏幕上)。
运行以上代码,将得到如下的输出:
1 2 3 4 5 6 7 8 9
以上代码已经成功从未排序的数组中删除了重复项,并将所有元素按升序排序。
#include <iostream>
#include <set>
int main()
{
int arr[] = {5,2,8,1,9,3,6,7,4,2,8,3,7};
std::set<int> s(arr, arr + sizeof(arr) / sizeof(int));
for (auto iter = s.begin(); iter != s.end(); iter++) {
std::cout << *iter << " ";
}
return 0;
}
通过STL的set容器,可以方便地从未排序的数组中删除重复项,并将所有元素按升序排序。这使得开发人员可以更快捷地处理数组中的数据,提高程序的效率和可读性。