list与erase()

news2024/11/15 18:35:28

运行代码:

//list与erase()
#include"std_lib_facilities.h"
//声明Item类
struct Item
{
	string name;
	int iid;
	double value;

	Item():name(" "),iid(0),value(0.0){}
	Item(string ss,int ii,double vv):name(ss),iid(ii),value(vv){}
	
	friend istream& operator>>(istream& is, Item& ii);
	friend ostream& operator<<(ostream& os, const Item& ii);

};

//------------------------------------------------------------
//重载Item类的输入和输出操作符
istream& operator>>(istream& is, Item& ii)
{
	is >> ii.name >> ii.iid >> ii.value;
	return is;
}

ostream& operator<<(ostream& os, const Item& ii)
{
	os << ii.name << " " << ii.iid << " " << ii.value;
	return os;
}

//----------------------------------------------------------

int main()
try
{
	cout << "输入读取文件名: ";
	string from_file;
	cin >> from_file;

	ifstream is(from_file.c_str());
	if (!is)error("can't open ", from_file);

	istream_iterator<Item>ii(is);
	istream_iterator<Item>eos;
	ostream_iterator<Item>oo(cout, "\n");

	list<Item>ll(ii, eos);
	ll.push_back(Item("horse shoe", 99, 12.34));
	ll.push_back(Item("Canon S400", 9988, 499.95));

	list<Item>::iterator p(ll.begin());
	while(p!=ll.end())
	{
		if (p->iid == 99 || p->iid == 9988)
		{
			ll.erase(p);
			p = ll.begin();
			if(p!=ll.begin())p--;
			continue;
		}
		p++;
	}

	copy(ll.begin(), ll.end(), oo);

	return 0;
}
catch (exception& e) {
	cerr << "error:" << e.what() << '\n';
	keep_window_open();
	return 1;
}
catch (...) {
	cerr << "Oops:unknown exception!\n";
	keep_window_open();
	return 2;
}

读取文件:Item_file.txt

Max 2 43.2
Jane 3 34.2
Tom 3 32.4
Mary 8 23.0
Peter 5 32.5
Max 2 43.2
Jane 3 34.2
Tom 3 32.4
Mary 8 23.0
Peter 5 32.5

运行结果:

 

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

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

相关文章

2023-07-11——华中科技大计算机组成原理

windows下用nginx配置https服务器 1.安装nginx 先到nginx官网下在nginx http://nginx.org/en/download.html 将下载好的文件解压出来修改文件名为 nginx ,然后拷贝到C盘下&#xff0c;目录如下&#xff1a; 运行 nginx start nginx 验证 在浏览器中输入 localhost 访问即可&a…

随笔:信息系统项目管理师(软考高级2023)考试指南

1、软考的级别设置 1、全国计算机软件资格考试设三个级别层次&#xff0c;五个专业&#xff0c;共有27种岗位资格考试 2、除了初级信息处理技术员为上机考试&#xff0c;其他均为笔试 3、信息系统项目管理师、系统规划与管理师、系统集成项目管理工程师考试形式相对考验记忆…

ObjectArx 设置填充透明度问题

初始化透明度参数AcCmTransparency对象时,需要调用setAlpha设置透明度值,这里传入的值是0255,但cad特性面板上显示的是090,且经过测试发现,传入值与特性面板显示的值也是不同的,比如传入90,显示64,百度搜索了个寂寞,最后还是在谷歌找到了答案,原来设置的值和特性面板…

【Rasa】入门案例学习

Rasa初体验--构建对话机器人 NLU数据 version: "3.1"nlu:- intent: greetexamples: |- Hi- Hey!- Hello- Good day- Good morning- intent: subscribeexamples: |- I want to get the newsletter- Can you send me the newsletter?- Can you sign me up for the ne…

寄存器分配:图着色算法

寄存器分配&#xff1a;图着色算法 背景活跃分析寄存器冲突图图着色算法溢出 背景 在编译器的中间表示中&#xff0c;一般会设定虚拟寄存器有无限多个&#xff08;方便优化&#xff09;&#xff0c;而真实的物理寄存器是有限的&#xff0c;因而编译器后端在将中间表示翻译成目…

初步了解C++模板

一、函数模板 如果我们要写一个交换两个变量值的函数Swap&#xff0c;那么我们得对每一种类型都写一个&#xff0c;以便适用不同类型的参数&#xff0c;但是有了模板之后&#xff0c;可以简化操作 template<class T> void Swap(T& x, T& y) {T tmp x;x y;y …

百题千解计划【CSDN每日一练】订班服(附解析+多种实现方法:Python、Java、C、C++、C#、Go、JavaScript)

如果决意去做一件事了,就不要再问自己和别人值不值得,心甘情愿才能理所当然,理所当然才会义无反顾。 🎯作者主页: 追光者♂🔥 🌸个人简介: 💖[1] 计算机专业硕士研究生💖 🌟[2] 2022年度博客之星人工智能领域TOP4🌟 🏅[3] 阿里云社区特邀专…

大数据处理框架-Spark DataFrame构造、join和null空值填充

1、Spark DataFrame介绍 DataFrame是Spark SQL中的一个概念&#xff0c;它是一个分布式的数据集合&#xff0c;可以看作是一张表。DataFrame与RDD的主要区别在于&#xff0c;前者带有schema元信息&#xff0c;即DataFrame所表示的二维表数据集的每一列都带有名称和类型。 2、构…

Statefulset部署应用

上一部分我们分享到了使用 RS 没有办法让自己管理的多个 pod 都有一个独立的持久化声明&#xff0c;RS 没有办法在指定模板中对不同的 pod 做差异化处理 使用多个 RS 来分别管理自己的的一个 pod&#xff0c;当我们扩缩容的时候&#xff0c;也会出现问题&#xff0c;老的 pod …

10. Mybatis 项目的创建

目录 1. Mybatis 概念 2. 第一个 Mybits 查询 2.1 创建数据库和表 2.2 添加 Mybatis 框架支持 2.3 添加配置文件 2.4 配置 MyBatis 中的 XML 路径 2.5 添加业务代码 在学习 Mybatis 之前&#xff0c;我们需要知道 Mybatis 和 Spring 没有任何的关系。如果一定要强调二者…

UniSSOView 任意命令执行复现

免责声明 技术文章仅供参考,任何个人和组织使用网络应当遵守宪法法律,遵守公共秩序,尊重社会公德,不得利用网络从事危害国家安全、荣誉和利益,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使…

什么是专业级OV通配符https证书

通配符SSL证书指的是SSL数字证书中可以用一张SSL数字证书保护主域名以及主域名下所有子域名的数字证书。我们按照验证方式将通配符SSL数字证书分为DV基础型和OV企业型通配符SSL证书两种&#xff0c;专业级的OV通配符SSL证书指的是需要验证域名所有权以及申请主体真实性的OV企业…

NI-DAQ Win10+QT+Cmake 开发环境搭建

文章目录 一.安装DAQ采集卡驱动二.NI MAX软件的使用三. QT利用Cmake构建工具搭建NI DAQ开发环境 一.安装DAQ采集卡驱动 到NI官网&#xff0c;选择技术支持&#xff0c;软件下载 搜索DAQ-mx NI测量设备均附带NI-DAQmx驱动软件。NI-DAQmx驱动软件是一个用途广泛的库&#xff0c;…

win10误删u盘文件怎么恢复数据?用5步解决数据丢失问题

求助&#xff0c;求助&#xff0c;Windows10电脑把U盘里面的文件误删了&#xff0c;其中一个txt文档对我比较重要&#xff0c;请问如何恢復? ——Win10误删U盘文件怎么恢复数据&#xff1f;在使用Windows 10操作系统时&#xff0c;有时候我们可能会不小心删除了U盘中的重要文件…

认可功能介绍 - 技术声誉靠认可

需求 大家在学习和工作中&#xff0c; 经常碰到一些热心帮助自己的人&#xff0c; 我们怎么向他们表示感谢呢&#xff1f; 各位博主在 CSDN 也做了很多贡献&#xff0c;也有不少用户在做各种各样的社区活动&#xff0c;这些活动给我们的领军人物什么回馈呢&#xff1f; 这些…

UG\NX二次开发 使用UF_MODL_create_symb_thread创建”螺纹符号“例子

文章作者:里海 来源网站:https://blog.csdn.net/WangPaiFeiXingYuan 简介: 使用UF_MODL_create_symb_thread创建”螺纹符号“例子 效果: 代码: #include <stdio.h> #include <string.h> #include <uf.h> #include <uf_modl.h> #include <…

aardio - 关于 loadcode 和 loadcodex 的用法

关于 loadcode 和 loadcodex 的用法&#xff0c;资料较少&#xff0c;我简单写了几种用法&#xff0c;作为抛砖引玉。 大家还有其他使用技巧&#xff0c;请跟帖&#xff1a; import consoletest1 /** myTestFunc1 function(){ return myFunc1; } **/ loadcodex(test1); co…

贝莱德研究论文:资产配置中的比特币比例,85% or 3%?

* * * 原创&#xff1a;刘教链 * * * 号外&#xff1a;今天在「刘教链内参」发表了《内参&#xff1a;从华尔街解读美联储加息看我们战胜华尔街的底层逻辑》&#xff0c;欢迎关注公众号「刘教链内参」并阅读。 --- 隔夜比特币继续在29k上方震荡。并未延续缓慢修复走势&#xf…

企业服务器中了360后缀勒索病毒,勒索病毒解密数据恢复数据库修复

近年来&#xff0c;随着网络技术的不断发展&#xff0c;也导致互联网威胁不断升级&#xff0c;各种类型的勒索病毒不断出现&#xff0c;给企业信息安全带来了巨大威胁。360后缀勒索病毒是其中一种&#xff0c;它能够加密企业的关键数据&#xff0c;并以赎金形式要求解密。近期&…

瑞芯微|rk3568 uart快速上手

一、调试环境 平台&#xff1a;rk3568 kernel: 4.19.232 SDK: rk_android11.0_sdk Board: rk3568-evb1-ddr4-v10 二、 rk3568 uart控制器 1. 特性&#xff1a; rk3568 UART控制器特性如下&#xff1a; - UART控制器通道&#xff1a;UART0~UART8 【datasheet好像写的有问…