1、函数原型:
- front(); //返回第一个元素。
- back(); //返回最后一个元素。
cout << L.at(0) << endl;// 错误 list不支持at访问数据
cout << L[0] << endl;//错误 list不支持[]方式访问数据
#include<iostream>
#include<string>
#include<list>
using namespace std;
int main()
{
list<int> L;
L.push_back(10);
L.push_back(20);
L.push_back(30);
L.push_back(40);
//cout << L.at(0) << endl;// 错误 不支持at访问数据
//cout << L[0] << endl;//错误 不支持[]方式访问数据
/*原因是list本质是链表,不是连续的存储空间,迭代器也是不支持随机访问的,如果要访问只能++的方式一直加*/
cout << "首元素" << L.front() << endl;
cout << "尾元素" << L.back() << endl;
//验证是容器的迭代器是什么样的(小技巧)
list<int>::iterator it = L.begin();
it++;//可以向前走,如果只可以向前走或向后走,说明是单向迭代器
it--;//也可以向后走,说明是双向迭代器
// it = it + 1;//出错,说明不支持随机访问,不是随机迭代器
return 0;
}
2、判断迭代器类型的小技巧
首先迭代器的种类有以下:
//验证是容器的迭代器是什么样的(小技巧)
list<int>::iterator it = L.begin();
it++;//可以向前走,如果只可以向前走或向后走,说明是单向迭代器(前向迭代器)
it--;//也可以向后走,说明是双向迭代器
it = it + 1;//说明支持随机访问,是随机迭代器