#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. Coloring Edges(有向图环染色)-- Educational Codeforces Round 72 (Rated for Div. 2)

    题意:https://codeforc.es/contest/1217/problem/D 给你一个有向图,要求一个循环里不能有相同颜色的边,问你最小要几种颜色染色,怎么染色? 思路: 如果没有环,那 ...

  2. python虚拟环境的的使用

    基于创建虚拟环境 virtualenv 安装 pip3 install virtualenv 通过virtulaenv创建虚拟环境 virtualenv luffycity --python=C:\P ...

  3. mybatis 延迟加载学习

    一.什么是延迟加载 resultMap可实现高级映射(使用association.collection实现一对一及一对多映射),association.collection具备延迟加载功能. 需求: ...

  4. JS基础_Unicode编码表

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  5. 题解 P2879 【[USACO07JAN]区间统计Tallest Cow】

    题目链接: https://www.luogu.org/problemnew/show/P2879 思路: 先不管最大高度,我们读入一对x,y.说明,x+1~y-1之间牛的身高都小于x,y. 然后不妨 ...

  6. javascript的隐式类型转换(使(a==1&&a==2&&a==3) 成立)

    一些团队规定禁用 == 运算符换用=== 严格相等.以工程标准衡量,== 带来的便利性抵不上其带来的成本,团队协作时候你看到别人代码中的 ==,有些时候需要判断清楚作者的代码意图是确实需要转型,还是无 ...

  7. 转载: Linux查看系统开机时间

    转自: https://www.cnblogs.com/kerrycode/p/3759395.html 查看Linux系统运行了多久时间,此时需要知道上次开机启动时间: 有时候由于断电或供电故障突然 ...

  8. Python实现读取Excel文档中的配置并下载软件包

    问题:现在遇到这样一个问题,服务器存储了很多软件包,这些包输入不同的产品,每个产品都有自己的配置,互相交叉,那么到底某一产品所有配置的软件包下载后,占用多大空间呢? 分析:从这个问题入手,了解到:软件 ...

  9. 能当壁纸用的Git常用命令速查表

    使用Microsoft Office 2016手工绘制. 链接: https://pan.baidu.com/s/18KsH-u5T2iSTHaXd6iQWGA 提取码: w8da 复制这段内容后打开 ...

  10. JavaWeb【过滤器】

    定义: 服务器端组件,可以截取用户端的请求和响应,并对这些信息做过滤. 课程概要: 1.工作原理 2.生命周期 1.web.xml配置 注意:url-pattern配置路径前面需要加"/&q ...