當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


C++ deque crbegin用法及代碼示例


deque::crbegin表示constant_reverse_beginner,顧名思義,它返回一個指向該雙端隊列最後一個元素的constant_reverse_iterator。

什麽是常量迭代器?
常量迭代器不用於修改。它僅用於訪問元素。您可以使用non_const迭代器來修改元素。

用法:



dequename.crbegin()

返回值:它將const_reverse_iterator返回到序列的相反開頭。

應用:

Given a deque with numbers in the increasing order, print them in non increasing order.
Input: deque{1, 2, 3, 4, 5, 6};
for (auto reverseit = deque.crbegin(); reverseit != deque.crend(); ++reverseit)
cout << ' ' << *reverseit;

Output:6 5 4 3 2 1

以下示例程序旨在說明crbegin函數的工作:

// deque::crbegin and crend 
#include <deque> 
#include <iostream> 
using namespace std; 
int main() 
{ 
    // Declare a deque with the name numdeque 
    deque<int> numdeque = { 1, 2, 3, 4, 5, 6 }; 
  
    // Print the deque backwards using crbegin and crend 
    cout << "Printing the numdeque backwards:"; 
  
    for (auto rit = numdeque.crbegin(); rit != numdeque.crend(); ++rit) 
        cout << ' ' << *rit; 
  
    return 0; 
}
輸出:
Printing the numdeque backwards:6 5 4 3 2 1

由於返回的迭代器是常量,因此如果嘗試更改值,則會出現編譯器錯誤。

// deque::crbegin and crend 
#include <deque> 
#include <iostream> 
using namespace std; 
int main() 
{ 
    // Declare a deque with the name numdeque 
    deque<int> numdeque = { 1, 2, 3, 4, 5, 6 }; 
  
    // Print the deque backwards using crbegin and crend 
    cout << "Printing the numdeque backwards:"; 
  
    for (auto rit = numdeque.crbegin(); rit != numdeque.crend(); ++rit) 
         *rit = 10; 
  
    return 0; 
}

輸出:

prog.cpp: In function ‘int main()’:
prog.cpp:14:8:error: assignment of read-only location ‘rit.std::reverse_iterator<_iterator>::operator* >()’
*rit = 10;
     ^




相關用法


注:本文由純淨天空篩選整理自Chaitanya Tyagi大神的英文原創作品 deque crbegin in C++ STL。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。