C++ Deque::crbegin() 函数



C++ 的std::deque::crbegin()函数用于返回一个指向双端队列中最后一个元素的常量反向迭代器。此迭代器从双端队列的末尾到开头遍历双端队列,确保元素按反序访问。它可用于以反序遍历双端队列的元素,而无需更改其值。

常量迭代器防止修改其指向的元素,提供只读访问。

语法

以下是 std::deque::crbegin() 函数的语法。

const_reverse_iterator crbegin() const noexcept;

参数

它不接受任何参数。

返回值

它返回一个指向双端队列中最后一个元素的反向迭代器。

异常

此函数从不抛出异常。

时间复杂度

此函数的时间复杂度为常数,即 O(1)。

示例

在以下示例中,我们将考虑 crbegin() 函数的基本用法。

#include <iostream>
#include <deque>
int main()
{
    std::deque<char> a = {'A', 'B', 'C', 'D'};
    std::deque<char>::const_reverse_iterator x = a.crbegin();
    std::cout << " " << *x << std::endl;
    return 0;
}

输出

以上代码的输出如下:

D

示例

考虑以下示例,我们将使用循环使用 crbegin() 和 crend() 以反序迭代双端队列。

#include <iostream>
#include <deque>
int main()
{
    std::deque<char> a = {'A', 'B', 'C', 'D'};
    for (auto x = a.crbegin(); x != a.crend(); ++x) {
        std::cout << *x << " ";
    }
    return 0;
}

输出

以下是以上代码的输出:

D C B A 

示例

让我们看以下示例,我们将搜索双端队列中的元素,同时以反序迭代。

#include <iostream>
#include <deque>
#include <algorithm>
int main()
{
    std::deque<char> a = {'A', 'B', 'C', 'D'};
    auto x = std::find(a.crbegin(), a.crend(), 'C');
    if (x != a.crend()) {
        std::cout << "Element found at position: " << std::distance(a.crbegin(), x) << std::endl;
    } else {
        std::cout << "Element not found." << std::endl;
    }
    return 0;
}

输出

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

Element found at position: 1
deque.htm
广告