C++ STL 中的 list rbegin() 和 rend() 函数


在本文中,我们将讨论 C++ STL 中 list::rbegin() 和 list::rend() 函数的工作原理、语法和示例。

什么是 STL 中的列表 (List)?

列表是一种数据结构,允许在序列中的任何位置进行常数时间插入和删除操作。列表实现为双向链表。列表允许非连续内存分配。与数组、向量和双端队列相比,列表在容器中任何位置进行元素的插入、提取和移动操作的性能更好。在列表中,直接访问元素的速度较慢,列表类似于 forward_list,但 forward_list 对象是单向链表,只能向前迭代。

什么是 list::rbegin()?

list::rbegin() 是 C++ STL 中的一个内置函数,在头文件中声明。rbegin() 是一个反向开始函数。rebegin() 返回一个反向迭代器,该迭代器指向列表的最后一个元素。反向迭代器是一种反向移动的迭代器,从末尾开始,向开头移动。但是 back() 也返回最后一个元素,但与简单的迭代器不同,这个双向迭代器向后移动。

语法

list_container1.rbegin();

参数

此函数不接受任何参数。

示例

Input: list<int> List_container = {10, 11, 13, 15};
      List_container.rbegin();
Output:
      List= 15

返回值

此函数返回一个反向迭代器,指向列表的最后一个元素。反向迭代器是一种向后移动的迭代器。

示例

在线演示

#include <bits/stdc++.h>
using namespace std;
int main(){
   list<int> myList = { 10, 20, 30, 40 };
   cout<<"List is: ";
   for (auto i = myList.rbegin(); i!= myList.rend(); ++i)
      cout << *i << " ";
   return 0;
}

输出

如果我们运行上面的代码,它将生成以下输出:

List is: 40 30 20 10

什么是 list::rend()?

list::rend() 是 C++ STL 中的一个内置函数,在头文件中声明。rend() 是一个反向结束函数。rend() 返回一个反向迭代器,该迭代器指向与之关联的列表容器的第一个元素之前的 position。反向迭代器是一种反向移动的迭代器,从末尾开始,向开头移动。但是 back() 也返回最后一个元素,但与简单的迭代器不同,这个双向迭代器向后移动。

语法

list_container1.rend();

此函数不接受任何参数。

示例

Input: list<int> List_container= { 10, 11, 13, 15};
      List_container.rend();
Output:
      List= 5 //will display random value which is before the beginning of the list

返回值

此函数返回一个反向迭代器,指向列表中第一个元素之前的元素。反向迭代器是一种向后移动的迭代器。

示例

在线演示

#include <bits/stdc++.h>
using namespace std;
int main(){
   list<int> myList = { 10, 20, 30, 40 };
      cout<<"List is : ";
   for (auto i = myList.rbegin(); i!= myList.rend(); ++i)
      cout << *i << " ";
   return 0;
}

输出

如果我们运行上面的代码,它将生成以下输出:

List is: 40 30 20 10

更新于:2020年3月6日

431 次浏览

启动您的职业生涯

完成课程获得认证

开始学习
广告