📜  C++ STL中的双端队列rend()函数(1)

📅  最后修改于: 2023-12-03 14:39:52.902000             🧑  作者: Mango

C++ STL双端队列rend()函数介绍

简介

在C++ STL中,双端队列(deque,双端队列)是一种通用容器,可以在两端进行插入和删除操作。rend() 函数返回一个反向迭代器,指向双端队列的尾部。

语法
dequeName.rend()
返回值

rend() 函数返回一个反向迭代器,指向双端队列的尾部。注意,rend() 返回的是一个迭代器,不是一个元素本身。

用法

使用 rend() 函数可以方便地对双端队列的尾部进行操作。例如,可以利用它在双端队列的尾部添加元素,或者对于需要从后向前访问双端队列元素的情况,可以使用它进行迭代。

下面是一个简单的例子,演示了如何使用 rend() 函数从双端队列的尾部开始遍历元素:

#include <deque>
#include <iostream>

int main()
{
    std::deque<int> mydeque = {1, 2, 3, 4, 5};
    
    std::cout << "Iterating from the back: ";
    for (auto itr = mydeque.rbegin(); itr != mydeque.rend(); ++itr)
        std::cout << *itr << " ";
    std::cout << std::endl;
    
    return 0;
}

上述代码中,我们使用 rbegin() 函数获取双端队列的反向迭代器,并使用 rend() 函数作为遍历的终止条件。在循环中,我们从尾部开始遍历元素,输出它们的值。

输出结果如下:

Iterating from the back: 5 4 3 2 1

可以看到,rend() 函数确实返回了双端队列的尾部(也就是第 6 个元素)。通过利用它,我们可以方便地对双端队列的尾部进行操作。

注意事项
  • rend() 函数不会修改双端队列本身,只返回一个迭代器。
  • 利用 rend() 函数修改迭代器不会影响原始的双端队列,因为返回的是一个迭代器,而不是元素本身。
  • 使用 rend() 函数前,要确保双端队列不为空,否则程序会发生未定义行为。