#include

#include

#include

using namespace std;

void Print(int &item)

{

cout<

}

int main()

{

list listintegers;

list::iterator listiter; //引入迭代器

//------------头插法插入元素-------------

listintegers.push_front(5);

listintegers.push_front(3);

listintegers.push_front(1);

listintegers.push_front(2);

listintegers.push_front(4);

//----------尾插法插入元素----------

listintegers.push_back(6);

listintegers.push_back(8);

listintegers.push_back(7);

//--------使用list的成员函数insert()插入元素到链表中

listintegers.insert(listintegers.end(),10);

listintegers.insert(listintegers.end(),9);

//----------利用迭代器输出链表-----------

/* 我们在每一个算法中都使用一个或多个iterator。我们使用它们来存取容器中的对象。

要存取一个给定的对象,我们把一个iterator指向它,然后间接引用这个iterator */

cout<<"链表为:";

for(listiter=listintegers.begin();listiter!=listintegers.end();listiter++)

{

cout<<*listiter<<" ";

}

cout<

//-------利用STL通用算法for_each()输出链表---------------

/* Print是个函数,实现对象的输出功能 */

cout<<"链表为:";

std::for_each(listintegers.begin(),listintegers.end(),Print);

cout<

//------利用STL通用算法find()推断链表中是否存在某元素----------

listiter=find(listintegers.begin(),listintegers.end(),6);

if(listiter==listintegers.end())

{

cout<<"6 is not in list"<

}

else

{

cout<<"6 is in list"<

}

//-------利用STL通用算法search()推断链表中是否存在某个序列-------

list targetlist;

targetlist.push_front(2);

targetlist.push_front(1); //定义该序列为12

listiter=search(listintegers.begin(),listintegers.end(),targetlist.begin(),targetlist.end());

if(listiter==listintegers.end())

{

cout<<"序列12 is not in list"<

}

else

{

cout<<"序列12 is in list"<

}

//使用list的成员函数sort()对链表进行排序

cout<<"排序后,链表为:";

listintegers.sort();

for(listiter=listintegers.begin();listiter!=listintegers.end();listiter++)

{

cout<<*listiter<<" ";

}

cout<

//使用list的成员函数remove()删除链表元素

listintegers.remove(8);

cout<<"删除8后,链表为:";

for(listiter=listintegers.begin();listiter!=listintegers.end();listiter++)

{

cout<<*listiter<<" ";

}

cout<

//----------使用list成员函数pop_front删除链首元素----------

listintegers.pop_front();

cout<<"删除链首元素后。链表为:";

for(listiter=listintegers.begin();listiter!=listintegers.end();listiter++)

{

cout<<*listiter<<" ";

}

cout<

//----------使用list成员函数pop_back删除链尾元素----------

listintegers.pop_back();

cout<<"删除链尾元素后,链表为:";

for(listiter=listintegers.begin();listiter!=listintegers.end();listiter++)

{

cout<<*listiter<<" ";

}

cout<

system("pause");

return 0;

}

查看原文