list(链表)

文章目录

    • 功能
    • 迭代器的分类
    • sort函数(排序)
    • merage(归并)
    • unique(去重)
    • remove
    • splice(转移)

功能

list(链表)_第1张图片
这里没有“[]"的实现;原因:实现较麻烦;这里使用迭代器来实现;

迭代器的分类

单向迭代器;双向迭代器;随机迭代器;
list(链表)_第2张图片
list(链表)_第3张图片

sort函数(排序)

sort函数在算法库中存在;为什么还要单独写一个呢?
算法库:
sort函数:
在这里插入图片描述
在这里的迭代器使用的是随机迭代器;而list不能使用随机迭代器,只能使用双向迭代器;
所以list库函数独自写了一个sort函数:
list(链表)_第4张图片
该函数默认为升序;添加一个greater变量以后就是降序;
list(链表)_第5张图片
sort函数尽量减少使用;时间消耗较大;
在这里插入图片描述

解决方法:
将list的数据传给vector;在用vector的sort函数来排序;使用迭代器输入法;
list(链表)_第6张图片
10万个数据一下差距不大;

merage(归并)

将两个链表合并到一起;
注意:这里的归并两个链表必须进行顺序排列;
再进行归并;
list(链表)_第7张图片

unique(去重)

这一函数可以将数组中的连续的数字保留第一个将剩下多余的数字删除;
**注意:**该数列去重之前必须将数组排序;

remove

该函数将会删除()内的数组相同的值;

splice(转移)

这里的转移是将原来的数据的连带节点一起转移到目标位置;
list(链表)_第8张图片

你可能感兴趣的:(链表,数据结构,c++)