在学习list时候了解到一个东西叫做迭代器(interator),它在容器中的作用有点类似于指针是容器和操纵容器的算法之间的中介,迭代器可以指向容器中的某一个元素,通过迭代器可以读取其指向的元素,那么由此开始进入本文的中心,front是返回list中的第一个元素,back是返回list中的最后一个元素如下代码:
list<int>a;
for(int i=0;i<20;i++)
{
a.insert(a.end(),i);
}
cout<<"front=" <<a.front()<<endl;
cout<<"back="<<a.front()<<endl;
很明显跑出的结果为front=0,back=19;
然而begin和end分别指的是返回一个指向第一个元素的迭代器和指向最末尾的迭代器
值得注意的是这里的末尾并不是最后一个元素而是最后一个后面的一个所以想要打出最后一个元素需要进行--操作
因为返回的是迭代器而不是元素所以这时候用如下代码无法运行:
cout<<"begin=" <<a.begin()<<endl;
cout<<"end="<<a.end()<<endl;
所以我们应当定义两个迭代器来接受返回的数据然后再将其输出:
list<int>::iterator i;
list<int>::iterator j;
i=a.begin();
j=a.end();
j--;
cout<<"begin=" <<*i<<endl;
cout<<"end="<<*j<<endl;
结果也很显然begin=0;end=19;