set中的end()函数的返回值表示:set容器中最后一个元素的迭代器。
不过,我理解的是:**set中的end()函数的返回值表示:set容器中最后一个元素后面的迭代器。
对endl()函数返回值取指针内容(即:下文中的*i.end())表示:该容器的大小,相当于set中的size()函数。**
以下是验证程序:
#include#include using namespace std; int main() { set i; i.insert(77); i.insert(13); i.insert(88); i.insert(55); i.insert(22); set ::iterator it; it=i.begin(); int aa=88; it=i.find(aa); //判断set容器里面是否有aa if(it==i.end()) {cout<<"not"<<*i.end()<<" "<<*it;} else {cout<<"find"<<*it<<" "<<*i.begin()<<" "<<*i.end();} return 0; }
输出结果:
find88 13 5
写在最后:
所以说,这也解释了,为什么容器遍历时的判断条件大多是it!=i.end()。
下面是,set容器遍历输出打印代码:
#include#include using namespace std; int main() { set i; i.insert(77); i.insert(13); i.insert(88); i.insert(55); i.insert(22); set ::iterator it; for(it=i.begin();it!=i.end();it++) { cout<<*it< 输出结果为:
13 22 55 77 88



