STL-list

 

#include "stdafx.h"
#include<iostream>
#include<string>
#include<vector>//vector向量容器
#include<deque>
#include<list>
#include<algorithm>
using namespace std;
/*
================================================= list介绍= ========================================================
list容器实现了双向链表的数据结构,数据元素是通过链表指针串连成逻辑意义上的线性表,这样,对链表的任何一位置的元素进行插入、删除以及查找都是极快的。
由于list对象的结点并不要求在一段连续的内存中,所以,对于迭代器,怎能通过++或--的操作将迭代器移动到后继/前驱结点出,而不能对迭代器进行+n或者-n操作。

 

 


*/

/******************************************************************/

int main(int argc, char* argv[])
{
/************************************** 1 ***************************************************/
/*1、创建list对象*/
list<int> l;//没有指定大小和初始化
list<int> l1(10);//长度为10
list<int> l2(3,0);//大小为10,初始化为0

list<int>::iterator it;

cout<<"初始化链表:"<<endl;
for(it=l2.begin();it!=l2.end();it++)
cout<<*it<<" ";
cout<<endl;

/*************************************** 2 **************************************************/
/* 2 插入元素*/
//尾部插入元素,会不断扩张队列
l2.push_back(4);
l2.push_back(3);
l2.push_back(8);
cout<<"尾部插入数据后链表为:"<<endl;
for(it=l2.begin();it!=l2.end();it++)
cout<<*it<<" ";
cout<<endl;

//头部插入元素,会扩张队列,与deque不同
l2.push_front(-1);
l2.push_front(-2);
cout<<"头部插入数据后链表为:"<<endl;
for(it=l2.begin();it!=l2.end();it++)
cout<<*it<<" ";
cout<<endl;

//中间插入元素,列表会扩张
l2.insert(l2.begin()++,-100);
it=l2.begin();
for(int i=0;i<4;i++)
it++;
l2.insert(it,7);
cout<<"中间插入数据后链表为:"<<endl;
for(it=l2.begin();it!=l2.end();it++)
cout<<*it<<" ";
cout<<endl;

/****************************************** 3 ***********************************************/
/*3、 删除元素*/
//尾部删除数据
l2.pop_back();
cout<<"尾部删除数据后链表为:"<<endl;
for(it=l2.begin();it!=l2.end();it++)
cout<<*it<<" ";
cout<<endl;

//从首部删除数据
l2.pop_front();
cout<<"头部删除数据后链表为:"<<endl;
for(it=l2.begin();it!=l2.end();it++)
cout<<*it<<" ";
cout<<endl;

//从中间删除数据
l2.erase(l2.begin()++);
it = l2.begin();
for(int i=0;i<3;i++)
it++;
l2.erase(it);
cout<<"中间删除数据后链表为:"<<endl;
for(it=l2.begin();it!=l2.end();it++)
cout<<*it<<" ";
cout<<endl;


//删除所有等于1的数
l2.remove(1);
cout<<"删除数据为1的元素后,链表为:"<<endl;
for(it=l2.begin();it!=l2.end();it++)
cout<<*it<<" ";
cout<<endl;

/****************************************** 4 ***********************************************/
//剔除连续重复的数据,只保留一个
l2.push_back(99);
l2.push_back(99);
l2.unique();
cout<<"剔除重复数据后的链表为:"<<endl;
for(it=l2.begin();it!=l2.end();it++)
cout<<*it<<" ";
cout<<endl;

/****************************************** 5 ***********************************************/
//元素查找,find如果找到则返回该元素的迭代器的位置;如果没有找到,则返回end()迭代器的位置
//使用find 函数,头文件需要包含<algorithm>
it = find(l2.begin(),l2.end(),-1);
if(it==l2.end())
cout<<"没有找到!"<<endl;
else
cout<<"找到"<<*it<<"了!"<<endl;


/******************************************* 6 **********************************************/
//有sort排序
l2.sort();
cout<<"排序后的链表为:"<<endl;
for(it=l2.begin();it!=l2.end();it++)
cout<<*it<<" ";
cout<<endl;

 

return 0;
}
//ABD##E##CF##G##

转载于:https://www.cnblogs.com/Axel-uestc/p/5734247.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/254761.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java微信二次开发(九)

多媒体文件上传与下载 第一步&#xff1a;找到包com.wtz.vo&#xff0c;新建类WeixinMedia.java 1 package com.wtz.vo;2 3 /**4 * author wangtianze QQ:8646200125 * date 2017年4月25日 上午11:10:316 * <p>version:1.0</p>7 * <p>descri…

add_metrology_object_generic将测量对象添加到计量模型中

目录add_metrology_object_generic&#xff08;算子&#xff09;描述可能的形状测量区域的定义通用参数参数add_metrology_object_generic&#xff08;算子&#xff09; add_metrology_object_generic - 将计量对象添加到计量模型中。 add_metrology_object_generic&#xff…

关于发那科机器人的FSSB

&#xfeff;&#xfeff;FSSB是指fanuc Serial Servo Bus&#xff0c;即发那科串行伺服总线&#xff08;光缆&#xff09;&#xff0c;连接CNC与伺服放大器。HSSB是指High-Speed Serial Bus&#xff0c;即高速串行总线&#xff08;光缆&#xff09;&#xff0c;连接CNC与外部P…

H264规定了三种主要档次

H264规定了三种主要档次&#xff0c;每个档次支持一组特定的编码功能&#xff0c;并支持一类特定的应用。 1、基本档次&#xff08;Baseline Profile&#xff09;&#xff1a;利用I片和P片支持帧内和帧间编码&#xff0c;支持利用基于上下文的自适应的变长编码进行的熵编码&…

get_metrology_object_result 获取计量模型的测量结果

目录get_metrology_object_result&#xff08;算子&#xff09;描述result_type&#xff1a;获取所有参数&#xff1a;获取特定参数&#xff1a;获得分数&#xff1a;used_edges&#xff1a;行&#xff1a;列&#xff1a;振幅&#xff1a;angle_direction&#xff1a;参数get_m…

iOS开发UI篇—字典转模型

一、能完成功能的“问题代码” 1.从plist中加载的数据 2.实现的代码 1 //2 // LFViewController.m3 // 03-应用管理4 //5 // Created by apple on 14-5-22.6 // Copyright (c) 2014年 heima. All rights reserved.7 //8 9 #import "LFViewController.h" 10 11 i…

Codechef:Path Triples On Tree

Path Triples On Tree 题意是求树上都不相交或者都相交的路径三元组数量。 发现blog里没什么树形dp题&#xff0c;也没有cc题&#xff0c;所以来丢一道cc上的树形dp题。 比较暴力&#xff0c;比较恶心 #include<cstdio> #include<algorithm> #define MN 300001 #de…

grbl

第一次发帖...之前上论坛都是查资料的&#xff0c;发现gcode这一块资料比较少先说一下Gcode:Gcode在工业控制上用的很多&#xff0c;是一种通用的控制指令&#xff0c;数控机床上经常用&#xff0c;在我diy雕刻机&#xff08;打印机之类的&#xff09;的时候要用到&#xff0c;…

mybitis实现增,删,改,查,模糊查询的两种方式:(2)

方式二&#xff1a;mapper代理接口方式 这种方式只需要xml接口&#xff08;不用写实体类&#xff09;但是需要符合三个规范 使用mapper代理接口方式在同一目录下&#xff08;可以创建一个源文件夹&#xff0c;达到类文件和xml文件分类的作用&#xff09;xml中namespace&#xf…

C语言中的静态函数的作用

转载 在C语言中为什么要用静态函数(static function)&#xff1f;如果不用这个static关键字&#xff0c;好象没有关系。那么&#xff0c;用了static以后&#xff0c;有什么作用呢&#xff1f;我们知道&#xff0c;用了static的变量&#xff0c;叫做静态变量&#xff0c;其意义是…

[转] sql server 跨数据库调用存储过程

A库存储过程&#xff1a; create PROCEDURE [dbo].[spAAAForTest] ( UserName nvarchar(20) null ,LoginPwd nvarchar(60) null ) AS BEGINselect NA AS a, NB AS B, NC AS C;END 同一台服务器实例&#xff0c;A&#xff0c;B两个数据库&#xff0c;…

get_metrology_object_result_contour查询计量对象的结果轮廓

目录get_metrology_object_result_contour&#xff08;算子&#xff09;描述参数get_metrology_object_result_contour&#xff08;算子&#xff09; get_metrology_object_result_contour - 查询计量对象的结果轮廓。 get_metrology_object_result_contour&#xff08;&…

ABB 机器人 压包指令PackRawBytes 解包指令UnpackRawBytes

ABB 压包指令PackRawBytes 解包指令UnpackRawBytes PackRawBytes- 将数据导入 rawbytes 数据。 使用方法 PackRawBytes 用于将 num, dnum, byte,或者 string类型的数据&#xff0c;打包到 rawbytes 类型的变量中. 基本举例 &#xff1a; VAR rawbytes raw_…

C语言中使用静态函数的好处

静态函数会被自动分配在一个一直使用的存储区&#xff0c;直到退出应用程序实例&#xff0c;避免了调用函数时压栈出栈&#xff0c;速度快很多。 关键字“static”&#xff0c;译成中文就是“静态的”&#xff0c;所以内部函数又称静态函数。但此处“static”的含义不是指存储方…

react+redux+generation-modation脚手架搭建一个todolist

TodoList1. 编写actions.js2. 分析state 试着拆分成多个reducer3. 了解store4. 了解redux数据流生命周期5. 分析容器组件和展示组件 搞清楚&#xff0c;数据到底是如何流动的&#xff1f;6. 编写展示组件的代码7. 编写容器组件8. 传入store9. 总结10. 参考TodoList 脚手架Githu…

c++11 原子类型与原子操作

1、原子类型和原子操作&#xff08;1&#xff09;类型&#xff08;2&#xff09;操作&#xff08;3&#xff09;详述● 原子类型只能从其模板参数类型中进行构造&#xff0c;标准不允许原子类型进行拷贝构造、移动构造&#xff0c;以及使用operator等● atomic_flag 是一个原子…

get_metrology_object_measures获取测量区域和计量模型的计量对象的边缘位置结果

目录get_metrology_object_measures&#xff08;算子&#xff09;描述参数get_metrology_object_measures&#xff08;算子&#xff09; get_metrology_object_measures - 获取测量区域和计量模型的计量对象的边缘位置结果。 get_metrology_object_measures&#xff08;&…

依弗科(上海)机电设备有限公司

机器人喷涂倒计时&#xff0c;上帝帮我实现愿望吧 阿门 &#xfeff;&#xfeff;&#xfeff;&#xfeff;

外部变量和外部函数

C程序由一组对象组成&#xff0c;这些对象包括程序中所使用的变量和实现特定功能的函数。变量可以分为函数内部定义、使用的变量和函数外部定义的变量&#xff0c;通常情况下&#xff0c;把函数内部定义、使用的变量称为内部变量或局部变量&#xff0c;而将在函数外部定义的、供…