版权声明:本文为博主原创文章,未经博主同意不得转载。 https://blog.csdn.net/chaoweilanmao/article/details/30793859

#include<iostream>
#include<algorithm>
#include<list>
#include<iterator>
#include<cstdlib>
using namespace std;
struct n1
{
string name;
long long num;
};
list<n1>l;
void charu()
{
n1 tmp;
cin>>tmp.name>>tmp.num;
if(tmp.num<l.front().num)
l.push_front(tmp);
else
l.push_back(tmp);
}
void quanshan()
{
l.clear();
}
string xs;
long long xi;
bool way(const n1 & a)
{
if(xi==-1)
return a.name==xs;
else
return a.num==xi;
}
void shanmingzi()
{
xi=-1;
cin>>xs;
l.remove_if(way);
}
void shanxuehao()
{
cin>>xi;
l.remove_if(way);
}
void xianshi()
{
list<n1>::iterator i;
for(i=l.begin();i!=l.end();i++)
cout<<i->name<<","<<i->num<<endl;
}
bool cmp(n1 a,n1 b)
{
return a.num<b.num;
}
void shunxu()
{
l.sort(cmp);
}
void daoxu()
{
l.reverse();
} bool same_integral_part (n1 a,n1 b)
{
return (a.name==b.name)&&(a.num==b.num);
} void xuanze()
{
int j;
cout<<"1.插入 2.删除 3.查看 4.排序"<<endl;
cin>>j;
if(j==1)
{
cout<<"输入名字,学号(比如。杜甫 123):"<<endl;
charu();
}
else if(j==2)
{
cout<<"1.按名字删 2.按学号删 3.全删"<<endl;
cin>>j;
if(j==1)
shanmingzi();
else if(j==2)
shanxuehao();
else if(j==3)
quanshan();
}
else if(j==3)
{
xianshi();
}
else if(j==4)
{
cout<<"1.顺序 2.倒序"<<endl;
cin>>j;
if(j==1)
shunxu();
else if(j==2)
daoxu();
cout<<"1.去重"<<endl;
cin>>j;
if(j==1)
l.unique(same_integral_part);
}
}
int main()
{
int j;
while(1)
{
xuanze();
cout<<"0.退出 1.返回选择界面"<<endl;
cin>>j;
if(j==0)
return 0;
system("cls");
}
}

关于c++ list容器的操作摸索的更多相关文章

  1. C++ Primer : 第九章 : 顺序容器的操作以及迭代器失效问题

    顺序容器的添加.访问.删除操作以及forward_list的特殊操作,还有迭代器失效问题. 一.向容器添加元素 // array不支持这些操作 // forward_list有自己撰于的版本的inse ...

  2. Docker 容器高级操作[Docker 系列-3]

    关注公众号,大家可以在公众号后台回复“博客园”,免费获得作者 Java 知识体系/面试必看资料. 上篇文章向读者介绍了一个 Nginx 的例子,对于 Nginx 这样一个容器而言,当它启动成功后,我们 ...

  3. 二、docker 镜像容器常用操作(让我们用docker 溜得飞起)

    前言 上篇讲了我们如何安装docker,现在该我们一展拳脚的时候了.接下来让我们一起学习一下docker常见的操作,让我们能够会使用 docker. 基本概念 在讲使用之前,还是先将一下docker ...

  4. Python语言基础与应用 (P23)上机练习:容器类型操作(未完待续)

    上机练习:容器类型操作〉 列表.元组基本操作+, *, len(), [], in Python 3.7.0 (default, Jun 28 2018, 08:04:48) [MSC v.1912 ...

  5. cb14a_c++_顺序容器的操作7_赋值与交换(swap)_vector转list

    cb14a_c++_顺序容器的操作7_赋值与交换(swap) vector数据赋值给list, slist.assign(svec.begin(), svec.end());//这样可以转 svec- ...

  6. ca13a_c++_顺序容器的操作6删除元素

    /*ca13a_c++_顺序容器的操作6删除元素c.erase(p) //删除迭代器p指向的位置c.erase(b,e) //删除b to e之间的数据,迭代器b包括,e不包括c.clear()//删 ...

  7. ca12a_c++顺序容器的操作5_访问容器中的数据元素

    ca12a_c++顺序容器的操作5_访问容器中的数据元素访问元素:c.back()..显示最后一个数据c.front() ..显示第一个数据c[n],n就是下标,适合vector与dequec.at( ...

  8. cb11a_c++_顺序容器的操作4_容器大小操作_resize-max_size

    cb11a_c++_顺序容器的操作4 2 容器大小的操作 3 c.size() 容器当前的个数 4 c.max_size(),容器最大存储量 5 c.empty() 是否为空 6 c.resize(n ...

  9. cb10a_c++_顺序容器的操作3关系运算符

    cb10a_c++_cb09a_c++_顺序容器的操作3 2 顺序容器的操作3 3 关系运算符 4 所有的容器类型都可以使用 5 比较的容器必须具有相同的容器类型,double不能与int作比较 6 ...

随机推荐

  1. 搭建Eclipse和MyEclipse的开发环境

    主要步骤: 下载并配置Eclipse 建立并运行一个简单的javaSE项目 下载并破解MyEclipse 整合Eclipse和MyEclipse 开发环境和Tomcat结合 关于这个配置也可以参考:h ...

  2. C#实现局部峰值查找,功能对应Matlab中的findpeaks.m

    相关算法的原理参考Ronny,地址:图像分析:投影曲线的波峰查找,这里感谢下原作者. 参照C++的代码实现,我用C#翻译了下,其实原理也很简单的,下面放相关实现代码: private double[] ...

  3. hdu2044 一只小蜜蜂

    和之前的楼梯题一样,递推求解 但是要注意这里可以到50,结果已经超出了Int的范围,所以要用64位保存 #include<iostream> #include<cmath> # ...

  4. 《JavaWeb从入门到改行》很好的复习资料: SQL语句到底怎么写 ?

    本文用到的数据库如下: CREATE DATABASE exam; /创建部门表/ CREATE TABLE dept( deptno INT PRIMARY KEY, dname ), loc ) ...

  5. js中获取css样式的两种方式

    1. 对象.style.样式名  弊端就是只能获取行内样式 2.window.getComputedStyle(对象,null); 最好用第二种方式 <!DOCTYPE html> < ...

  6. Modern Operating System

    No one can do all things, learn to be good at use what others already did. Most computers have two m ...

  7. Week3——Session

    Session 一.Session是会话技术的一种.会话技术分为Cookie和Session.Cookie是数据存储在客户端本地,减少服务器端的存储的压力,安全性不好,客户端可以清除cookie: S ...

  8. 用Appium让Android功能自动化测试飞起来

    前言 做Android端功能自动化已有2年多的时间了,使用过的功能自动化框架有Robotium.Uiautomator.Appium.最近研究自动化case复用的方案,调研了Appium的自动化框架, ...

  9. RHEL生命周期管理 -- Should I stay, or should I go?

    1. RHEL的支持策略是怎么样的? 标准支持(一般7年)+ 延长支持(3年) 2. 升级RHEL的好处有哪些? More advantageous to upgrade completely to ...

  10. Ddos 反射性防护 simple

    加固NTP服务: 1.通过Iptables配置只允许信任的IP,访问本机的UDP的123端口,修改配置文件执行echo "disable monitor" >> /et ...