C++ STL中的forward_list::begin()和forward_list::end()

C++ STL中的forward_list::begin()和forward_list::end()

STL中的Forward List实现了单向链表。自C++11引入以来,与其他容器相比,前向列表在插入、删除和移动(如排序)等操作中更加有用,并允许元素的常数时间插入和删除。它与List的区别在于,前向列表仅跟踪下一个元素的位置,而列表同时跟踪下一个和上一个元素的位置。

forward_list::begin()

begin()函数用于返回指向前向列表容器第一个元素的迭代器。begin()函数 返回一个前向迭代器 指向容器的第一个元素。

语法:

forwardlistname.begin()

参数:

返回类型: 该函数返回一个前向迭代器,指向第一个元素。

示例:

Input  : myflist{1, 2, 3, 4, 5};
         myflist.begin();
Output : _返回指向元素1的迭代器_

Input  : myflist{8, 7};
         myflist.begin();
Output : _返回指向元素8的迭代器_

错误与异常: 1. 它没有抛出任何异常的保证。 2. 当传递参数时显示错误。

// CPP程序示例
// 实现begin()函数
#include <forward_list>
#include <iostream>
using namespace std;
 
int main()
{
    // 声明前向列表容器
    forward_list<int> myflist{ 1, 2, 3, 4, 5 };
 
    // 使用begin()打印列表
    for (auto it = myflist.begin(); it != myflist.end(); ++it)
        cout << ' ' << *it;
    return 0;
}

输出:

1 2 3 4 5

时间复杂度: O(1)

forward_list::end()

end()函数用于返回列表的最后一个元素后面的迭代器。Container. end()函数 返回一个前向迭代器 指向容器的最后一个元素后面的位置。

语法:

forwardlistname.end()

参数:

返回类型: 该函数返回一个双向迭代器指向最后一个元素后面的位置。

示例:

Input  : myflist{1, 2, 3, 4, 5};
         myflist.end();
Output : _返回指向5后面位置的迭代器_

Input  : myflist{8, 7};
         myflist.end();
Output : _返回指向7后面位置的迭代器_

错误与异常: 1. 它没有抛出任何异常的保证。 2. 当传递参数时显示错误。

// CPP程序示例
// 实现end()函数
 
#include& lt; forward_list & gt;
#include& lt; iostream & gtusing namespace std;
 
int main()
{
    // 声明前向列表容器
    forward_list& lt;
    int& gt;
    myflist{ 1, 2, 3, 4, 5 };
 
    // 使用end()打印前向列表
    for (auto it = myflist.begin(); it != myflist.end();
         ++it)
        cout& lt;
    <
    ' ' & lt;
    <
    *it;
    return 0;
}

输出:

1 2 3 4 5

时间复杂度: O(1)

让我们以表格形式看一下它们之间的差异:

forward_list::begin() forward_list::end()
它用于返回指向forward_list容器中第一个元素的迭代器。 它用于返回指向forward_list容器末尾的迭代器。
它的语法如下: iterator begin() 它的语法如下: iterator end()
它不需要任何参数。 它不需要任何参数。
它的复杂度是常数级别的。 它的复杂度是常数级别的。
它的迭代器有效性不会改变。 它的迭代器有效性不会改变。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

C++ 教程