C++ STL中forward_list::unique()函数

C++ STL中forward_list::unique()函数

forward_list::unique() 是C++ STL中的一个内置函数,它可以从forward_list中删除所有连续的重复元素,它使用二元谓词进行比较。

语法:

forwardlist_name.unique(BinaryPredicate name)

参数: 该函数接受一个单一的参数,即 二元谓词 ,如果元素应被视为相等,则返回 true。其具有以下语法:

bool name(data_type a, data_type a)

返回值: 该函数不返回任何内容。

// C++程序来说明
// unique() 函数
#include 
using namespace std;

// 二元谓词函数
/* bool compare(int a, int b)
{
    return (abs(a) == abs(b));
}
// 这个函数也可以在unique()中使用且得到相同结果
*/

int main()
{

    forward_list list = { 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 2, 4, 4 };

    cout << "unique 操作前的列表元素为: ";

    // 从列表的第一个元素开始到最后一个元素
    for (auto it = list.begin(); it != list.end(); ++it)
        cout << *it << " ";

    // forward list 上的 unique 操作
    list.unique();
    cout << "\nunique 操作后的列表元素为: ";

    // 从列表的第一个元素开始到最后一个元素
    for (auto it = list.begin(); it != list.end(); ++it)
        cout << *it << " ";

    return 0;
}

输出结果:

unique 操作前的列表元素为: 1 1 1 1 2 2 2 2 3 3 3 2 4 4 
unique 操作后的列表元素为: 1 2 3 2 4

时间复杂度: O(N),其中N是所比较的元素数

辅助空间: O(1)

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

C++ 教程