私は STL に慣れてきたばかりでoperator []
、エラーが発生する理由がよくわかりません。
int main(){
set< int > s;
for(int i=0; i<=1000; i++) s.insert((i*1777)%123);
for(int i=0; i<s.size(); i++) cout<<s[i]<<endl;
}
次に、これを試したところ、別のエラーメッセージが表示されました
int main(){
set< int > s;
for(int i=0; i<=1000; i++) s.insert((i*1777)%123);
for(int i=0; i<s.size(); i++) cout<<*(s.begin() + i)<<endl;
}
push_back
、および allのようなメンバーがない理由は理解していpop_back
ますが、これら2つの参照方法が機能しない理由がわかりません(しかし、vector
およびに対しては機能しますstring
)。これらの演算子がライブラリでオーバーロードされていないことは理解していますが、なぜですか?
いくつかのWeb検索の後、私はそれを参照する方法を見つけました
int main(){
set< int > s;
for(int i=0; i<=1000; i++) s.insert((i*1777)%123);
for(set< int >::iterator i=s.begin(); i!=s.end(); i++) cout<<*i<<endl;
}