回答編集履歴
1
追記
test
CHANGED
@@ -87,3 +87,55 @@
|
|
87
87
|
}
|
88
88
|
|
89
89
|
```
|
90
|
+
|
91
|
+
**追記**
|
92
|
+
|
93
|
+
イテレータは、複数の要素を順番に参照するためのポインタのようなもの、と言った
|
94
|
+
|
95
|
+
のに、1つの要素しか持たない vector の例を出してしまって申し訳ありません。
|
96
|
+
|
97
|
+
|
98
|
+
|
99
|
+
vector 以外に list や string も iterator を持っています。
|
100
|
+
|
101
|
+
どの iterator かを示すために string::iterator のように書きます。
|
102
|
+
|
103
|
+
そう書くのは、iterator というクラスが string の中で定義されているからです。
|
104
|
+
|
105
|
+
|
106
|
+
|
107
|
+
次のコードは理解できますか?
|
108
|
+
|
109
|
+
```C++
|
110
|
+
|
111
|
+
#include <iostream>
|
112
|
+
|
113
|
+
#include <string>
|
114
|
+
|
115
|
+
using namespace std;
|
116
|
+
|
117
|
+
|
118
|
+
|
119
|
+
int main()
|
120
|
+
|
121
|
+
{
|
122
|
+
|
123
|
+
string s;
|
124
|
+
|
125
|
+
s.push_back('a');
|
126
|
+
|
127
|
+
s.push_back('b');
|
128
|
+
|
129
|
+
s.push_back('c');
|
130
|
+
|
131
|
+
cout << s.size() << ":";
|
132
|
+
|
133
|
+
for (string::iterator it = s.begin(); it != s.end(); ++it)
|
134
|
+
|
135
|
+
cout << " " << *it;
|
136
|
+
|
137
|
+
cout << endl;
|
138
|
+
|
139
|
+
}
|
140
|
+
|
141
|
+
```
|