#include <list>
#include <string>
using namespace std;
typedef struct DiskInfo_st
{
int diskNo;
bool isUsed;
string diskName;
} DiskInfo; class DiskManager
{
private:
list<DiskInfo> m_list; public:
bool AddDisk(const string& name);
bool RemoveDisk(int num);
void Traverse();
};
#include "disk_manager.h"

bool DiskManager::AddDisk(const string& name)
{ for(list<DiskInfo>::iterator it = m_list.begin(); it != m_list.end(); it++)
{
if(!(*it).isUsed)
{
(*it).diskName = name;
(*it).isUsed = true;
return true;
}
}
DiskInfo disk;
disk.diskNo = m_list.size();
disk.diskName = name;
disk.isUsed = true; cout << "hello" << endl;
m_list.push_back(disk);
return true;
} bool DiskManager::RemoveDisk(int num)
{
if(num < || num >= m_list.size())
{
cout << "The No. of disk is wrong." << endl;
return false;
}
for(list<DiskInfo>::iterator it = m_list.begin(); it != m_list.end(); it++)
{
if((*it).diskNo == num)
{
(*it).isUsed = false;
return true;
}
}
} void DiskManager::Traverse()
{
for(list<DiskInfo>::iterator it = m_list.begin(); it != m_list.end(); it++)
{
cout << "No. " << (*it).diskNo;
cout << " name: " << (*it).diskName;
cout << " usedState: " << ((*it).isUsed ? "Yes" : "No") << endl;
}
}
#include <iostream>
#include "disk_manager.h" using namespace std; int main(int argc, char *argv[])
{
DiskManager diskManager;
diskManager.AddDisk("sda");
diskManager.AddDisk("sdb");
diskManager.AddDisk("sdc");
diskManager.AddDisk("sdd");
diskManager.AddDisk("sdf");
diskManager.Traverse();
cout << endl << endl;
diskManager.RemoveDisk();
diskManager.Traverse();
cout << endl << endl;
diskManager.AddDisk("sdg");
diskManager.Traverse(); cout << endl << endl;
diskManager.AddDisk("sdj");
diskManager.Traverse();
return ;
}

一个关于STL list使用 小示例的更多相关文章

  1. ReactNative新手学习之路06滚动更新ListView数据的小示例

    本节带领大家学习使用ListView 做一个常用的滚动更新数据示例: 知识点: initialListSize={200} 第一次加载多少数据行 onEndReached={this.onEndRea ...

  2. 一个openMP编程处理图像的示例

    一个openMP编程处理图像的示例: 从硬盘读入两幅图像,对这两幅图像分别提取特征点,特征点匹配,最后将图像与匹配特征点画出来.理解该例子需要一些图像处理的基本知识,我不在此详细介绍.另外,编译该例需 ...

  3. 用c#写的一个局域网聊天客户端 类似小飞鸽

    用c#写的一个局域网聊天客户端 类似小飞鸽 摘自: http://www.cnblogs.com/yyl8781697/archive/2012/12/07/csharp-socket-udp.htm ...

  4. python(三)一个文件读写操作的小程序

    我们要实现一个文件读写操作的小程序 首先我们有一个文件 我们要以"============"为界限,每一个角色分割成一个独立的txt文件,按照分割线走的话是分成 xiaoNa_1. ...

  5. 笔试题&amp;面试题:找出一个数组中第m小的值并输出

    题目:找出一个数组中第m小的值并输出. 代码: #include <stdio.h> int findm_min(int a[], int n, int m) //n代表数组长度,m代表找 ...

  6. MVC客户端验证的小示例

    MVC客户端验证的小示例 配置客户端验证的可用性: <configuration> <appSettings>  <add key="ClientValidat ...

  7. 一个基于ES5的vue小demo

    由于现在很多vue项目都是基于ES6开发的,而我学vue的时候大多是看vue官网的API,是基于ES5的,所以对于刚接触项目的我来说要转变为项目的模块化写法确实有些挑战.因此,我打算先做一个基于ES5 ...

  8. VC++:制作一个控件注册的小工具

    在平时的工作中,时常需要注册与反注册ActiveX控件,有时需要判断控件是否已经注册.   所以通过查找资料编写了一个控件注册的小工具,欢迎学习交流,不当之处请多多交流. 先直接上图:   主要代码: ...

  9. 【.Net】Socket小示例

    引言 项目中用到了Socket,这里做个控制台小示例记录一下. Client 客户端的Receive用了异步方法,保持长连接,可以随时发送消息和响应服务端的消息,如下 static string Cl ...

随机推荐

  1. 后缀数组 LCP--模板题

    题意: 给你S串和T串,用T串的所有前缀去匹配S串(匹配值是最长公共子串). 问你总值相加是多少. 思路: 先把两个S,T串倒过来,再拼接 S#T 合成一串,跑一下后缀数组 在排序好的rank里计算每 ...

  2. php通过session来实现登录验证

    1.概述 这几天在做一个内部统计管理系统,所有内容需要登录后才能查看.这就需要系统内部每个模块都有登录验证的功能.在网上找了一圈资料,决定用session来做. 2.系统概况 后端语言:php(用的是 ...

  3. JWT的认识和session的区别

    1.前后端分离框架中前端和后端域名不同,不能跨域请求,加上移动端无cookie,所以无法使用session.2.基于token的认证和传统的session认证的区别: 传统的session认证: 我们 ...

  4. MySQL5.7主从-GTID-mysqldump,xtrabackup搭建

    1.两个空库,都是row+gtid,版本为MySQL5.7.22mydb1执行:(dba_user@localhost) [(none)]> show master status;+------ ...

  5. IDEA将项目打包为指定class文件的jar

    转自:https://blog.csdn.net/makang456/article/details/86699375 [背景]     公司最近要和某大公司合作,将本公司的产品提供给其它公司单独部署 ...

  6. centos 服务器 发开防火墙端口

    一.概述 在服务器上手动安装了某个软件,需要通过外部访问该软件(有对外开放端口),但是此时访问不通,此时检查,发现是该端口没有在防火墙开放,因此外界访问不了该服务器上的该软件对外提供的功能,基于此,需 ...

  7. React高阶组件学习笔记

    高阶函数的基本概念: 函数可以作为参数被传递,函数可以作为函数值输出. 高阶组件基本概念: 高阶组件就说接受一个组件作为参数,并返回一个新组件的函数. 为什么需要高阶组件 多个组件都需要某个相同的功能 ...

  8. java9 新特征

    Java 平台级模块系统 java模块化解决的问题:减少Java应用和Java核心运行时环境的大小与复杂性 模块化的 JAR 文件都包含一个额外的模块描述器.在这个模块描述器中, 对其它模块的依赖是通 ...

  9. selectpage

    官方文档地址 https://terryz.oschina.io/selectpage/docs.html

  10. Delphi RS-232C标准