我刚刚熟悉 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;
}
我理解为什么它没有成员 like push_back
,pop_back
但我不明白为什么这两种引用方法不起作用(但它们适用于vector
and string
)。我知道这些运算符在库中没有重载,但为什么呢?
经过一些网络搜索后,我确实弄清楚了如何引用它
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;
}