#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; }

使用STL中的list容器实现单链表的操作相关推荐

  1. STL中的set容器的一点总结

    1.关于set C++ STL 之所以得到广泛的赞誉,也被很多人使用,不只是提供了像vector, string, list等方便的容器,更重要的是STL封装了许多复杂的数据结构算法和大量常用数据结构 ...

  2. 深入解析C++ STL中的常用容器

    转载:http://blog.csdn.net/u013443618/article/details/49964299 这里我们不涉及容器的基本操作之类,只是要讨论一下各个容器其各自的特点.STL中的 ...

  3. C++小课堂:STL中的栈容器(stack)

    栈很像我们的箱子,我们将衣服这些装进箱子,第一个拿出来的肯定是最顶上的那件衣服,栈也一样. 今天我们就来学习栈容器:stack 头文件:<stack> 之前介绍的vector其实是STL中 ...

  4. 线性表中的尾插法单链表的学习

    #include <stdio.h> #include <malloc.h>/*** 线性表中的尾插法单链表的学习 *//*** 人类*/ typedef struct Per ...

  5. 笔试面试常考数据结构-单链表常用操作编程实现

    单链表是笔试以及面试手写代码中常考的数据结构之一.下面实现了单链表的常见操作:创建单链表.删除节点.打印单链表(包括正向打印以及逆向打印).反转单链表.找出单链表的倒数第K个节点.合并两个有序单链表等 ...

  6. java实现单链表常见操作,java面试题,java初级笔试题

    写在最前面,我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家.扫码加微信好友进[程序员面试学习交流群],免费领取.也欢迎各位一起在群里探讨技术. 一. ...

  7. java实现单链表常见操作

    一.概述: 本文主要总结单链表常见操作的实现,包括链表结点添加.删除:链表正向遍历和反向遍历.链表排序.判断链表是否有环.是否相交.获取某一结点等. 二.概念: 链表: 一种重要的数据结构,HashM ...

  8. 【数据结构】单链表的操作

    内容: 1)实现单链表的以下基本操作:建立单链表,查找单链表,插入单链表,删除单链表. 2)采用单链表结构编程实现:两个有序单链表的归并运算. 实现思路: ① 定义数据域类型: ② 定义单链表,分为数 ...

  9. 单链表创建及代码实现对单链表的操作

    链表:链表是一个有序的列表:是以节点的方式存储的,是链式存储:其中每一个节点包含data域,next域,next域指向下一个节点:链表的各个节点不一定是连续存放的:链表分带有头节点的链表和没有头节点的 ...

最新文章

  1. MongoDB配置文件
  2. 新手探索NLP(十五)——终章
  3. centos7.2下安装mysql5.7数据库
  4. MySQL中地理位置数据扩展geometry的使用心得
  5. 农区养羊如何配套种草
  6. Java魔法堂:初探MessageFormat.format和ChoiceFormat
  7. intellij idea 最常用的快捷键
  8. windows+hugo+github搭建个人博客
  9. PowerShell 2.0 实践(十一)管理 TFS 2010 (2)
  10. java 异步处理数据格式_spring mvc对异步请求的处理
  11. 面向对象编程(七):接口(抽象类)
  12. 以太坊智能合约开发,Web3.js API 中文文档 ethereum web3.js入门说明
  13. 基于Excel的实验室设备管理系统设计
  14. 大学生计算机水平怎么提高,大学生如何提高计算机能力
  15. 百年铁树要开花,贾跃亭要还钱了?
  16. onnxruntime cuda版本使用时出现的错误汇总
  17. visio绘图小技巧
  18. 修改ftp服务器开放22端口,linux服务器修改ftp默认21端口方法
  19. Photoshop---Wacom手绘板绘画画变成了拖动,根本不能画画
  20. android方向触摸事件,Android触摸事件如何传递?

热门文章

  1. java - rest-assured 接口测试
  2. 从支付宝SDK的支付流程理解什么是公钥和私钥,什么是加密和数字签名
  3. django admin 登陆快速添加验证码功能
  4. 大多数物联网仍采用2.4GHz频段的原因
  5. jquery获取元素颜色css('color')的值返回RGB
  6. Linux(CentOS6.4、CentOS6.3)下安装、配置PostgreSQL9.2
  7. 心中无敌,则天下无敌
  8. 如何通俗易懂地解释卷积?(2)
  9. Uniform Grid , KD-Tree , BVH 性能比较
  10. Hive(二)——数据类型与文件格式