basic_stringコンテナには、stringクラスとwstringクラスが含まれています。
従ってstringクラスに対して反復子を使用できます。また、この章では「逆方向反復子」についてもやります。
まずは、サンプルプログラムを見てみましょう。
// 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