链表的接口:
#include <iostream>
#include <list>
#include <algorithm>
using namespace std;
int main()
{
list<int> ilist;
cout << "size= " << ilist.size() << endl;
ilist.push_back(0);
ilist.push_back(1);
ilist.push_back(2);
ilist.push_back(3);
ilist.push_back(4);
cout << "size= " << ilist.size() << endl;
list<int> ::iterator ite;
for (ite = ilist.begin(); ite != ilist.end(); ++ite)
cout << *ite << ' ';
cout << endl;
ite = find(ilist.begin(), ilist.end(), 3);
if (ite != ilist.end())
ilist.insert(ite, 99);
cout << "size= " << ilist.size() << endl;
cout << *ite << endl;
for (ite = ilist.begin(); ite != ilist.end(); ++ite)
cout << *ite << " ";
cout << endl;
cout << "erase 1:\n";
ite = find(ilist.begin(), ilist.end(), 1);
if (ite != ilist.end())
cout << "删除后返回值:"<<*(ilist.erase(ite)) << endl;
cout << "size= " << ilist.size() << endl;
for (ite = ilist.begin(); ite != ilist.end(); ++ite)
cout << *ite << " ";
cout << endl;
cout << "splice with {5,6,7,8,9} at 99:\n";
int iv[5] = {5,6,7,8,9};
list<int> ilist2(iv, iv + 5);
ite = find(ilist.begin(), ilist.end(), 99);
ilist.splice(ite, ilist2);//spice 将连续范围的元素从一个list移动到另一个list的某个定点
cout << "size= " << ilist.size() << endl;
for (ite = ilist.begin(); ite != ilist.end(); ++ite)
cout << *ite << " ";
cout << endl;
cout << "reverse:\n";
ilist.reverse();
for (ite = ilist.begin(); ite != ilist.end(); ++ite)
cout << *ite << " ";
cout << endl;
cout << "sort:\n";
ilist.sort();
for (ite = ilist.begin(); ite != ilist.end(); ++ite)
cout << *ite << " ";
cout << endl;
cout << "remove 99:\n";
ilist.remove(99);
for (ite = ilist.begin(); ite != ilist.end(); ++ite)
cout << *ite << " ";
cout << endl;
list<int> ilist3(iv, iv + 3);
cout << "merge with {5,6,7}:\n";
ilist.merge(ilist3);
for (ite = ilist.begin(); ite != ilist.end(); ++ite)
cout << *ite << " ";
cout << endl;
ilist.unique();
cout << "unique:\n";
for (ite = ilist.begin(); ite != ilist.end(); ++ite)
cout << *ite << " ";
cout << endl;
system("pause");
}
输出: