また、この章では「逆方向反復子」についてもやります。
まずは、サンプルプログラムを見てみましょう。
// bstring01.cpp #include <iostream> #include <string> using namespace std; int main() { string str("abcdefg"); int n, i; string::iterator p; string::reverse_iterator e; basic_string<char>::iterator q; p = str.begin(); e = str.rbegin(); n = (int)str.size(); cout << "size = " << n << endl; for (i = 0; i < n; i++) { cout << *p++; } cout << endl; for (i = 0; i < n; i++) { cout << *e++; } cout << endl; return 0; }通常の反復子は
string::iterator p;のように宣言します。
p = str.begin();とすれば、pは最初のデータを指します。
cout << *p++;を繰り返すと、次々とデータを先頭から表示することになります。
逆方向反復子を使用するには
string::reverse_iterator e;のような感じで宣言します。
e = str.rbegin();で、最初のデータをさします。 つまり、一番最後のデータです。
cout << *e++;を繰り返すと、データの最後から前に向かって次々と表示することになります。
では、実行結果を見てみましょう。
Update Aug/30/2004 By Y.Kumei