C++ Array::rend() 函数



C++ 的std::array::rend()函数用于返回一个反向迭代器,该迭代器指向用于反向遍历的数组的第一个元素之前的元素。

此迭代器从最后一个元素向开头移动。与常规迭代器不同,它从结尾开始并向后工作。

语法

以下是std::array::rend()函数的语法。

reverse_iterator rend() noexcept;
const_reverse_iterator rend() const noexcept;

参数

它不接受任何参数。

返回值

此函数返回指向序列反向结尾的反向迭代器。

异常

此函数从不抛出异常。

时间复杂度

常数,即 O(1)

示例 1

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

#include <iostream>
#include <array>
int main() {
   std::array < int, 4 > a = {12,23,34,45};
   for (auto x = a.rbegin(); x != a.rend(); ++x) {
      std::cout << * x << " ";
   }
   return 0;
}

输出

上述代码的输出如下:

45 34 23 12

示例 2

考虑下面的示例,我们将使用rend()函数以反向顺序比较两个数组。

#include <iostream>
#include <array>
int main() {
   std::array < int, 3 > x = {11,22,33};
   std::array < int, 3 > y = {11,22,33};
   if (std::equal(x.rbegin(), x.rend(), y.rbegin())) {
      std::cout << "Arrays are equal" << std::endl;
   } else {
      std::cout << "Arrays are not equal" << std::endl;
   }
   return 0;
}

输出

以下是上述代码的输出:

Arrays are equal

示例 3

让我们来看下面的示例,我们将使用rend()函数遍历和修改每个元素。

#include <iostream>
#include <array>
int main() {
   std::array < int, 3 > x = {12,23,34};
   for (auto a = x.rbegin(); a != x.rend(); ++a) {
      * a *= 2;
   }
   for (const auto & num: x) {
      std::cout << num << " ";
   }
   return 0;
}

输出

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

24 46 68 
array.htm
广告
© . All rights reserved.