C ++清单(4.5)

列表是按顺序存储数据并为元素分配非连续内存的容器类型。在C ++中,列表被视为双链表,其中可以从两端进行元素的插入和删除,因此也可以从两端遍历该列表。对于使用单链接列表,我们使用C ++ STL中可用的转发列表。

与矢量相比,使用列表的优势在于

如果迭代器放置在正确的元素上,则List可以更快地插入和删除列表容器中可用的元素。

使用List的缺点是

在列表中,很难直接通过其位置获取容器中可用的元素。就像,如果我们要获取第四个元素,那么将很难直接跳转到第四个元素,相反,迭代器需要从起点或终点到达那里。

与列表关联的功能是

  • Push_front(element) -此函数用于在列表的开头插入元素。

    语法-listName.push_front(数据类型元素)

    参数-它以一个参数作为要插入的值。

    返回值-没有返回值。

  • Push_back(element) -此函数用于在列表的末尾插入元素。

    语法-listName.push_back(数据类型元素)

    参数-它以一个参数作为要插入的值。

    返回值-没有返回值。

  • Insert() -此函数用于将元素插入列表容器中的给定位置。

    语法-:listName.insert(位置,总计,元素)

    参数-需要三个参数-

    • 需要插入元素的位置

    • 总计,指定要插入的元素总数

    • 元素指定要插入的元素。  

  • 返回值-返回指向新插入元素的开头的迭代器。

  • Pop_front() -此函数用于从列表的开头删除元素。

    语法-listName.pop_front()

    参数-无参数

    返回值-没有返回值

  • Front() -此函数用于获取列表的第一个元素。

    语法-listName.front()

    参数-无参数

    返回值-此函数返回对第一个元素的直接引用

  • Pop_back() -此函数用于从列表末尾删除元素。

    语法-listName.pop_back()

    参数-无参数

    返回值-没有返回值

  • back() -此函数用于获取列表的最后一个元素。

    语法-listName.back()

    参数-无参数

    返回值-此函数返回对最后一个元素的直接引用

  • size() -此函数用于获取列表中元素的总数。

    语法-listName.size()

    参数-无参数

    返回值-此函数返回列表中元素的总数。

  • Resize() -此函数用于调整列表中元素的总数。

    语法-listName.resize(int resized_number,value(可选))

    参数-需要两个参数

    • resize_number-确切的数字,要增加或减小的容器大小

    • value(可选) -这是一个可选参数,它将指定的值添加到元素的末尾。

  • 返回值-:无返回值。

  • Max_size() -此函数用于获取列表可以具有的最大元素数。

    语法-listName.max_size()

    参数-无参数

    返回值-此函数返回列表可以具有的最大元素数。

  • Clear() -此函数用于删除列表中的所有元素并将其大小重置为0。

    语法-listName.max_size()

    参数-无参数

    返回值-没有返回值。

  • remove(element) -此函数用于删除所有与传入参数匹配的元素。

    语法-listName.remove(element)

    参数 -它采用单个参数,该参数指定要从列表容器中删除的元素。

    返回值-没有返回值。

  • Remove_if(函数指针/函数对象) -此函数用于根据参数传递的条件删除与参数传递的元素匹配的所有元素。

    语法-listName.remove_if(函数指针/函数对象)

    参数-它采用单个参数作为函数指针或函数对象。

    返回值-删除所有元素后返回true。

  • Erase() -此函数用于擦除单个元素以及多个元素,具体取决于传递给它的参数

    语法-:迭代器listName.erase(迭代器位置)迭代器listName.erase(迭代器First_ele,迭代器Last_ele)

    参数-在First语法中,它采用参数position,该位置指定将从列表容器中删除元素的位置。在Second语法中,它采用参数first元素和last元素,该参数指定将从中删除元素的范围

    返回值-返回指向最后删除的元素的迭代器。

  • Empty() -此函数用于检查列表是否为空。

    语法-listName.empty()

    参数-无参数

    返回值-

    • 返回true-当列表为空时

    • 返回false-当列表不为空时。

  • Begin() -此函数返回一个迭代器,该迭代器指向列表中的第一个元素。

    语法-listName.begin()

    参数-无参数

    返回值-返回指向列表中第一个元素的迭代器。

  • End() -此函数返回指向列表中最后一个元素的迭代器。

    语法-listName.end()

    参数-无参数

    返回值 -返回一个迭代器,该迭代器指向列表中的结束元素。
    rbegin() -此函数返回一个反向迭代器,该迭代器指向列表中的最后一个元素。
    语法-listName.rbegin()
    参数-无参数
    返回值-返回指向列表中结束元素的反向迭代器。

  • rend() -此函数返回一个反向迭代器,该迭代器指向列表中的第一个元素。

    语法-listName.rend()

    参数-无参数

    返回值-返回指向列表中第一个元素的反向迭代器。

  • Cbegin() -使用此函数返回一个常数随机访问迭代器,该迭代器指向列表的开头。

    语法-listName.cbegin()

    参数-无参数

    返回值 -返回一个常数随机访问迭代器,该迭代器指向列表的开头。

  • Cend() --此函数用于返回一个常量随机访问迭代器,该迭代器指向列表的末尾。

    语法-listName.cend()

    参数-无参数

    返回值-返回一个常量随机访问迭代器,该迭代器指向列表的末尾。

  • Crbegin() -此函数用于返回一个常数随机访问反向迭代器,该迭代器指向列表的末尾。

    语法-listName.crbegin()

    参数-无参数

    返回值-返回一个常数随机访问反向迭代器,该迭代器指向列表的末尾。

  • Crend() -此函数用于返回一个常数随机访问反向迭代器,该迭代器指向列表的开头。

    语法-listName.crend()

    参数-无参数

    返回值-返回一个常数随机访问反向迭代器,该迭代器指向列表的开头。

  • reverse() -此函数用于反转列表容器中的所有元素。

    语法-listName.reverse()

    参数-无参数

    返回值-没有返回值

  • unique() -此函数用于从列表中删除所有重复的连续元素。

    语法-listName.unique(认为两个值相同的谓词)

    参数-它采用可选参数,当需要将两个元素视为相同时,返回true。

    返回值-没有返回值

  • emplace() -此函数用于在给定位置插入新元素。

    语法-listName.emplace(位置,值)

    参数-它具有两个参数,一个参数指定需要插入元素的位置,另一个参数告诉需要插入元素的值。

    返回值-返回指向新插入元素的迭代器。

  • Emplace_front() -此函数用于将新元素插入列表的开头。

    语法-listName.emplace_front(element)

    参数-它采用一个参数来指定要插入的值

    返回值-没有返回值。

  • Emplace_back() -此函数用于将新元素插入列表的末尾。

    语法-listName.emplace_back(element)

    参数-它采用一个参数来指定要插入的值

    返回值-没有返回值。

  • 运算符(=) -此运算符用于将一个列表的内容替换为另一列表。

    语法-listName_1 = listName_2

    参数-无参数

    返回值-没有返回值。

  • Swap() -此函数用于将一个列表的内容交换为相同类型的另一个列表

    语法-listName_1.swap(listName_2)

    参数-无参数

    返回值-没有返回值。

  • Merge() -此函数用于将元素合并到两个列表中。

    语法-listName_1.merge(listName_2)

    参数-无参数

    返回值-没有返回值。