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
廣告