去除已排序数列中的重复数--c++实现

xiaoxiao2021-02-28  163

一组数列已经排序,需要去除其中重复的数,同时输出去除重复数之后数列的长度。

有两种方法。

1、使用c++的STL中的unique函数来实现

#include<iostream>

#incnlude<algorithm>

#include<vector>

using namespace std; int main() {     vector<int> vec;     int n;     cin >> n;     for(int i = 0; i < n; i++)     {         int value;         cin >> value;         vec.push_back(value);     }

//若无序,则使用sort函数排个序

sort(vec.begin(),vec.end());

erase(unique(vec.begin(),vec.end()),vec.end());

cout << vec.size() << endl;

return 0;

}

2、不使用unique

#include<iostream> #include<vector> using namespace std; int main() {     vector<int> vec;     int n;     cin >> n;     for(int i = 0; i < n; i++)     {         int value;         cin >> value;         vec.push_back(value);     }     int index = 0;     for(int i = 1; i < n; i++)     {         if(vec[index] != vec[i])             vec[++index] = vec[i];     }     cout << index+1 << endl;     for(int i = 0; i < index+1; i++)         cout << vec[i] << " ";     return 0; }

转载请注明原文地址: https://www.6miu.com/read-23005.html

最新回复(0)