CHAPTER8-18.cpp
上传用户:fjc899
上传日期:2007-07-03
资源大小:187k
文件大小:2k
- //文件名:CHAPTER8-18.cpp
- #include <list>
- #include <iostream>
- #if _MSC_VER > 1020 // if VC++ version is > 4.2
- using namespace std; // std c++ libs implemented in std
- #endif
- int main( )
- {
- using namespace std;
- list <int> c1;
- list <int>::iterator c1_Iter;
- list <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
- // list <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 list (to point to the first element here)
- cout << "The first element in the list is: " << *c1_rIter << endl;
- cout << "The list 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 list
- cout << "The reversed list 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 list (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 list is:";
- for ( c1_rIter = c1.rbegin( ); c1_rIter != c1.rend( ); c1_rIter++ )
- cout << " " << *c1_rIter;
- cout << endl;
- return 0;
- }