本文主要是对set进行讲解
理论上:
set中的end() 函数的返回值表示:set容器中最后一个元素的迭代器。
不过,我理解的是:
**set中的end() 函数的返回值表示:set容器中最后一个元素后面的迭代器。
对endl() 函数返回值取指针内容(即:下文中的*i.end() )表示:该容器的大小,相当于set中的size() 函数。**
以下是验证程序:
#include <iostream>
#include <set>
using namespace std;
int main()
{
set<int> i;
i.insert(77);
i.insert(13);
i.insert(88);
i.insert(55);
i.insert(22);
set<int>::iterator it;
it=i.begin();
int aa=88;
it=i.find(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 <iostream>
#include <set>
using namespace std;
int main()
{
set<int> i;
i.insert(77);
i.insert(13);
i.insert(88);
i.insert(55);
i.insert(22);
set<int>::iterator it;
for(it=i.begin();it!=i.end();it++)
{
cout<<*it<<endl;
}
return 0;
}
输出结果为:
13
22
55
77
88
|