在C++中使用示例的Forward List和Tuple List
什么是Forward List?
STL中的Forward List用于实现单链表。从C++11开始引入,Forward List在插入、删除和移动操作(如排序)方面比其他容器更有用,并允许在时间常数内插入和删除元素。
它与List的不同之处在于,Forward List仅跟踪下一个元素的位置,而List跟踪下一个和上一个元素,因此增加了存储每个元素所需的存储空间。
Forward List的缺点是不能向后迭代,并且其各个元素不能直接访问。
当仅需要正向遍历时(与单向链表比起来,同样的原因),推荐使用Forward List。一些示例用例包括哈希链、图的邻接列表表示等。
与Forward List相关的函数:
- push_front() : 此函数用于在Forward List的第一个位置插入元素。该函数的值被复制到容器中第一个元素之前的空间中。Forward List的大小增加1。
- pop_front() : 此函数用于删除List的第一个元素。
- empty() : 返回List是否为空(1)或非空(0)。
什么是List?
List是允许非连续内存分配的序列容器。与向量相比,List的遍历速度较慢,但一旦找到位置,插入和删除很快。通常,当我们说List时,我们谈论的是双向链表。为了实现单链表,我们使用Forward List。
与List相关的函数:
- front() : 返回List中第一个元素的值。
- back() : 返回List中最后一个元素的值。
- push_front(x) : 在List开头添加一个新元素“x”。
- push_back(x) : 在List末尾添加一个新元素“x”。
- empty() : 返回List是否为空(1)或非空(0)。
什么是Tuple?
在C++中,Tuple是一种具有将多个元素组合在一起的功能的对象。元素可以是相同类型或不同数据类型。元组元素的初始化顺序可以按照相同的顺序访问。
与Tuple相关的函数:
1. make_tuple(): 用于为元组分配值。传递的值应按照元组声明的值的顺序。
2. get(): 用于访问元组值并修改它们,它接受索引和元组名称作为参数,以访问特定的元组元素。
Forward List of Tuples
在C++中,Forward List of Tuples是一个Forward List,其中每个元素本身都是一个Tuple。尽管元组可以包含更多或更少的元素,但为简单起见,我们仅使用三个元素的元组。
语法:
**forward_list <tuple<dataType1, dataType2,dataType3> myForwardList; **
在这里,
dataType1、dataType2和dataType3 是相似或不同的数据类型。
示例1: 下面是C++程序,演示元组的前向列表的工作原理。
输出:
示例2: 下面是C++程序,演示元组的前向列表的工作原理。
输出:
List of tuples
在C++中,元组的列表是一个列表,每个元素本身都是一个元组。虽然元组可以包含更多或更少的元素,但出于简单起见,我们仅使用具有三个元素的元组。
语法:
**list <tuple<dataType1, dataType2, dataType3> myList; **
这里,
dataType1,dataType2和dataType3 是相似或不同的数据类型。
示例 1: 下面是演示元组列表工作的C++程序。
输出:
示例2: 以下是演示元组列表的C++程序。
输出: