次の方法で共有


deque::rend

逆順の deque に最後の要素の次の場所を指定する反復子を返します。

const_reverse_iterator rend( ) const; 
reverse_iterator rend( );

戻り値

逆順の deque (通常 deque の最初の要素の前) に成功したする最後の要素の位置をアドレス逆のランダム アクセス反復子を場所。

解説

逆順のrend は、deque と 終了 が deque で使用するように使用されます。

rend の戻り値が const_reverse_iteratorに割り当てられている場合、deque のオブジェクトは変更できません。rend の戻り値が reverse_iteratorに割り当てられている場合、deque のオブジェクトを変更することができます。

反転反復子が deque の末尾に到達したかどうかをテストするためにrend を使用できます。

rend によって返された値は逆参照しないでください。

使用例

// deque_rend.cpp
// compile with: /EHsc
#include <deque>
#include <iostream>

int main( ) 
{
   using namespace std;

   deque <int> c1;
   deque <int>::iterator c1_Iter;
   deque <int>::reverse_iterator c1_rIter;
   // If the following line had replaced the line above, an error
   // would have resulted in the line modifying an element
   // (commented below) because the iterator would have been const
   // deque <int>::const_reverse_iterator c1_rIter;
   
   c1.push_back( 10 );
   c1.push_back( 20 );
   c1.push_back( 30 );

   c1_rIter = c1.rend( );
   c1_rIter --; // Decrementing a reverse iterator moves it forward 
                // in the deque (to point to the first element here)
   cout << "The first element in the deque is: " << *c1_rIter << endl;

   cout << "The deque is: ";
   for ( c1_Iter = c1.begin( ); c1_Iter != c1.end( ); c1_Iter++ )
      cout << *c1_Iter << " ";
   cout << endl;

   // rend can be used to test if an iteration is through all of 
   // the elements of a reversed deque
   cout << "The reversed deque is: ";
   for ( c1_rIter = c1.rbegin( ); c1_rIter != c1.rend( ); c1_rIter++ )
      cout << *c1_rIter << " ";
   cout << endl;

   c1_rIter = c1.rend( );
   c1_rIter--; // Decrementing the reverse iterator moves it backward 
               // in the reversed deque (to the last element here)
   *c1_rIter = 40; // This modification of the last element would 
                   // have caused an error if a const_reverse 
                   // iterator had been declared (as noted above)
   cout << "The modified reversed deque is: ";
   for ( c1_rIter = c1.rbegin( ); c1_rIter != c1.rend( ); c1_rIter++ )
      cout << *c1_rIter << " ";
   cout << endl;
}
  

必要条件

ヘッダー: <deque>

名前空間: std

参照

関連項目

deque Class

deque::rbegin と deque::rend

標準テンプレート ライブラリ