C++陣列去重
基本方法:定義一個新陣列,然後將元素組一一和新陣列的元素對比,若不同則存放在新陣列中。
#include <iostream> using namespace std; int main() { int a[10] = { 0,1,1,0,2,3,2,4,2,4 }; int tmp[10]; // 定義一個和k相同大小的陣列,存放去重後的數 int m = 0; // 記錄當前tmp到底存了多少個元素 for (int i = 0; i < 10; i++) { int j = 0; for (; j < m; j++) { if (a[i] == tmp[j])//拿a[i]依次與tmp裡的元素對比 break; // 找到相同的了 } if (j == m) { // 沒有找到一個相同的,把a中此元素放入tmp裡 tmp[m] = a[i]; m++; } } for (int i = 0; i < m; i++) { cout << tmp[i] << endl; } return 0; }
先排序再去重
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
int a[10] = { 0,1,1,0,2,3,2,4,2,4 };
sort(a, a + 10);
cout << a[0];
for (int i = 1; i<10; i++)
{
if (a[i] != a[i - 1])
cout << " " << a[i];
}
cout << endl;
}