您的位置:首页 > 编程语言 > C语言/C++

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

2017-05-05 11:50 399 查看
一组数列已经排序,需要去除其中重复的数,同时输出去除重复数之后数列的长度。

有两种方法。

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;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c++