1.List容器
1.1List介绍
1)list是一个双向链表容器,可高效地进行插入删除元素。
2)list不可以随机存取元素,所以不支持at.(pos)函数与[]操作符。
1.2list对象的创建
list采用采用模板类实现,对象的默认构造形式:list lstT;
list lstInt; //定义一个存放int的list容器。
list lstFloat; //定义一个存放float的list容器。
list lstString; //定义一个存放string的list容器。
//尖括号内还可以设置指针类型或自定义类型。
1.3list头尾的添加移除操作
list.push_back(elem); //在容器尾部加入一个元素
list.pop_back(); //删除容器中最后一个元素
list.push_front(elem); //在容器开头插入一个元素
lst.pop_front(); //从容器开头移除第一个元素
1.4list的数据存取
list.front(); //返回第一个元素。
list.back(); //返回最后一个元素。
1.5list与迭代器
list.begin(); //返回容器中第一个元素的迭代器。
list.end(); //返回容器中最后一个元素之后的迭代器。
list.rbegin(); //返回容器中倒数第一个元素的迭代器。
list.rend(); //返回容器中倒数最后一个元素的后面的迭代器。
list<int> lstInt;
lstInt.push_back(1);
lstInt.push_back(3);
lstInt.push_back(5);
lstInt.push_back(7);
lstInt.push_back(9);
for (list<int>::iterator it=lstInt.begin(); it!=lstInt.end(); ++it)
{
cout<<*it;
cout << " ";
}
for (list<int>::reverse_iterator rit=lstInt.rbegin(); rit!=lstInt.rend(); ++rit)
{
cout<<*rit;
cout << " ";
}
1.6list对象的带参数构造
1)st(beg,end); //构造函数将[beg, end)区间中的元素拷贝给本身。注意该区间是左闭右开的区间
2)list(n,elem); //构造函数将n个elem拷贝给本身。
3)list(const list &lst); //拷贝构造函数。
list<int> lstIntA;
lstIntA.push_back(1);
lstIntA.push_back(3);
lstIntA.push_back(5);
lstIntA.<