一个关于STL list使用 小示例

#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 < 0 || 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(1);
    diskManager.Traverse();
    cout << endl << endl;
    diskManager.AddDisk("sdg");
    diskManager.Traverse();

    cout << endl << endl;
    diskManager.AddDisk("sdj");
    diskManager.Traverse();
    return 0;
}

时间: 2024-07-29 16:52:51

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

Hello SAS 1 -- 安装并运行一个小示例

1.安装 软件环境说明 win7 64位 + SAS9.4 准备工作 查看SAS的sid文件有效期,并修改系统时间为有效期之前的1个月,如图示: 修改sid 问题1:SAS EM创建项目报NO_FILE错误(报错时的场景是操作系统是中文,也没有修改系统时间) 解决方式: 1.操作系统语言改成英文版.(试过几次中文版的都失败了,不确定这是主因,因为安装成功时也修改了系统时间,之前失败的时候都没修改系统时间) 2.修改系统时间 2.创建Libraries及table 创建Libraries(软件重启

基于nodeJs express 框架的图片上传和编辑(引用美图编辑工具)上传小示例

唉,由于近期工作中对于新知识的运用相对较少,也导致小码哥少有更新鄙人心得的机会.还望路过的基友们不要抱怨,勿喷,,,,, 本篇文章,是基于NodeJs Express框架完成的一个用于项目中图片上传和编辑上传的小示例,当然,由于项目工期不禁,都是在非工作时间慢慢完成的,导致至今该图片上传功能也未能插入项目中真正的验证最终效果.不过就小码哥感觉,基本思路及基本功能算是完成了. 下面便由小码哥来给基友们稍微讲解改功能的实现过程及其中用到的一些技术等等. 首先,说说NodeJs Express框架的搭

js ajax数据的获取小示例 天气信息填充表格

AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术. 现在大家写写了一个简单的ajax获取数据的小示例,希望能帮助需要帮助的. html代码: 1 <table border="1" > 2 <!--因为在谷歌上会自动添加tbody标签,其他浏览器不会有这标签,所以添加tbody是为了选取元素时不会发生混乱.--> 3 <tbody> 4 <tr> 5 <th>日期</th> 6 <th&

一个简单的“贪吃蛇”小游戏

一个简单的“贪吃蛇”小游戏 页面结构 简单的21x21的方块,页面结构 id为container的div包含所21个class名为row的div,每个row代表贪吃蛇的一整行,每个row中又包含21个div,代表这一行的每一个div方格,如果这个方格是空的话,div的类名为blank,如果这一个方格表示“贪吃蛇”的“食物”,div的类名为food,如果这一个方格表示“蛇”,div的类名为snake. CSS JS 然后我们思考下一个贪吃蛇游戏需要那些参数, 首先,界面中可见的元素无非就是空方格,

温故知新,基础复习(一个有序从大到小不重复的数列,任意给出一个sum值,求出数列中所有满足和为sum的数对)

温故知新,基础复习(一个有序从大到小不重复的数列,任意给出一个sum值,求出数列中所有满足和为sum的数对) #include<stdio.h> #include<stdlib.h> void PrintSumNumbers(int Arra[],int ASize,int Sum) { //O(1) if (ASize<2) { printf("The size of the Arra is invalid.\n"); return; } if(Sum&

一个,关于textarea的小问题。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <style> *{margin:0; padding:

PHP jQuery ajax 表单提交小示例(含insert, select)

功能描述:能够通过表单向MySQL数据库新增记录,能够表单提供关键词进行查询 index.html <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"&g

为数据挖掘小组写的一个用于造数据的小程序

最近有个数据挖掘的项目,要求在文本里面写入随机字母并且要1000W个 于是就写了个程序用来造数据并记录一下 程序写的时候遇到的问题 1 未考虑内存溢出的情况,大批量的把数据写入导致内存溢出 以后需要谨慎对待 目前完整版 package test; import java.io.File; import java.io.FileWriter; import java.io.IOException; import org.apache.commons.io.FileUtils; import org

IOS的一个关于球碰撞的小游戏

这个游戏是关于一个球随机在屏幕上移动,可以用手指来操纵令一个球,如果两个球碰撞到一起,就表示输了,非常简单的一个游戏 在StoryBoard里定义两个UIImageView和一个start按钮 然后把这两个UIimageView跟代码链接 @property (weak, nonatomic) IBOutlet UIImageView *player; @property (weak, nonatomic) IBOutlet UIImageView *enemy; @property (weak