使用STL中的list容器实现单链表的操作

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介:
#include<iostream>
#include<list>
#include<algorithm>
using namespace std;
void Print(int &item)
{
  cout<<item<<" ";
}
int main()
{
  list<int> listintegers;
  list<int>::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<<endl; //-------利用STL通用算法for_each()输出链表--------------- /* Print是个函数,实现对象的输出功能 */ cout<<"链表为:"; std::for_each(listintegers.begin(),listintegers.end(),Print); cout<<endl; //------利用STL通用算法find()推断链表中是否存在某元素---------- listiter=find(listintegers.begin(),listintegers.end(),6); if(listiter==listintegers.end()) { cout<<"6 is not in list"<<endl; } else { cout<<"6 is in list"<<endl; } //-------利用STL通用算法search()推断链表中是否存在某个序列------- list<int> 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"<<endl; } else { cout<<"序列12 is in list"<<endl; } //使用list的成员函数sort()对链表进行排序 cout<<"排序后,链表为:"; listintegers.sort(); for(listiter=listintegers.begin();listiter!=listintegers.end();listiter++) { cout<<*listiter<<" "; } cout<<endl; //使用list的成员函数remove()删除链表元素 listintegers.remove(8); cout<<"删除8后,链表为:"; for(listiter=listintegers.begin();listiter!=listintegers.end();listiter++) { cout<<*listiter<<" "; } cout<<endl; //----------使用list成员函数pop_front删除链首元素---------- listintegers.pop_front(); cout<<"删除链首元素后。链表为:"; for(listiter=listintegers.begin();listiter!=listintegers.end();listiter++) { cout<<*listiter<<" "; } cout<<endl; //----------使用list成员函数pop_back删除链尾元素---------- listintegers.pop_back(); cout<<"删除链尾元素后,链表为:"; for(listiter=listintegers.begin();listiter!=listintegers.end();listiter++) { cout<<*listiter<<" "; } cout<<endl; system("pause"); return 0; } 本文转自mfrbuaa博客园博客,原文链接:http://www.cnblogs.com/mfrbuaa/p/5380170.html,如需转载请自行联系原作者

相关文章
|
2天前
|
索引 容器
06-python数据容器-list列表定义/list的10个常用操作/列表的遍历/使用列表取出偶数
06-python数据容器-list列表定义/list的10个常用操作/列表的遍历/使用列表取出偶数
|
1月前
|
存储 算法 测试技术
【C++】容器篇(二)——List的基本概述以及模拟实现
【C++】容器篇(二)——List的基本概述以及模拟实现
|
1月前
|
安全 Java API
Java并发 - J.U.C并发容器类 list、set、queue
Queue API 阻塞是通过 condition 来实现的,可参考 Java 并发 - Lock 接口 ArrayBlockingQueue 阻塞 LinkedBlockingQueue 阻塞 ArrayQueue 非阻塞 LinkedQueue 非阻塞
|
1月前
|
存储 安全 C++
深入理解C++ STL中的vector容器
深入理解C++ STL中的vector容器
12 0
|
1月前
|
搜索推荐 算法 C++
list容器-排序案例讲解
list容器-排序案例讲解
9 0
|
1月前
|
C++ 索引 容器
list容器-教据存取讲解
list容器-教据存取讲解
10 1
|
1月前
|
算法 C++ 容器
list容器-反转和排序讲解39
list容器-反转和排序讲解39
12 0
|
1月前
|
存储 C++ 容器
list容器-大小操作讲解
list容器-大小操作讲解
16 0
|
1月前
|
存储 C++ 容器
list容器-插入和删除讲解
list容器-插入和删除讲解
19 0
|
1月前
|
存储 安全 Java
java集合框架及其特点(List、Set、Queue、Map)
java集合框架及其特点(List、Set、Queue、Map)