/*标准模板库函数(stl)之链表(list)
* 标准库中使用的为双向链表
* */
#include <iostream>
#include <list>
using namespace std;
int main()
{
//定义一个模板类对象
list<int> l;
//插入元素
l.push_back(6);//尾插
l.push_front(7);//头插
l.push_back(21);
l.push_front(6);
l.push_front(11);
l.push_back(17);
l.push_back(16);
l.push_front(9);
cout << "front : " << l.front() << endl;
cout << "back : " << l.back() << endl;
cout << "size : " << l.size() << endl;
cout << "empty : " << l.empty() << endl;
cout << endl;
cout << "------插入后-------" << endl;
for (int& i : l) {
cout << i << " ";
}
cout << endl;
cout << "------排序后------" << endl;
l.sort();
for (int& i : l) {
cout << i << " ";
}
cout << endl;
cout << "------除头尾后------" << endl;
l.pop_front();
l.pop_back();
for (int& i : l) {
cout << i << " ";
}
cout << endl;
cout << "-------删除一个元素------" << endl;
l.remove(6);
for (int& i : l) {
cout << i << " ";
}
cout << endl;
cout << "------删除一个范围的元素------" << endl;
auto it = l.begin();//it指向第一个元素的下标
it++;
it++;
l.erase(l.begin(), it); //删除第一个(包括)到第三个元素(不包括)(半开半闭区间)
for (int& i : l) {
cout << i << " ";
}
cout << endl;
cout << "------------------" << endl;
}
* 标准库中使用的为双向链表
* */
#include <iostream>
#include <list>
using namespace std;
int main()
{
//定义一个模板类对象
list<int> l;
//插入元素
l.push_back(6);//尾插
l.push_front(7);//头插
l.push_back(21);
l.push_front(6);
l.push_front(11);
l.push_back(17);
l.push_back(16);
l.push_front(9);
cout << "front : " << l.front() << endl;
cout << "back : " << l.back() << endl;
cout << "size : " << l.size() << endl;
cout << "empty : " << l.empty() << endl;
cout << endl;
cout << "------插入后-------" << endl;
for (int& i : l) {
cout << i << " ";
}
cout << endl;
cout << "------排序后------" << endl;
l.sort();
for (int& i : l) {
cout << i << " ";
}
cout << endl;
cout << "------除头尾后------" << endl;
l.pop_front();
l.pop_back();
for (int& i : l) {
cout << i << " ";
}
cout << endl;
cout << "-------删除一个元素------" << endl;
l.remove(6);
for (int& i : l) {
cout << i << " ";
}
cout << endl;
cout << "------删除一个范围的元素------" << endl;
auto it = l.begin();//it指向第一个元素的下标
it++;
it++;
l.erase(l.begin(), it); //删除第一个(包括)到第三个元素(不包括)(半开半闭区间)
for (int& i : l) {
cout << i << " ";
}
cout << endl;
cout << "------------------" << endl;
}