华为练习 对象管理器

来源:互联网 发布:avxcl新域名 编辑:程序博客网 时间:2024/06/07 18:25
实现对象管理器功能,其中管理的对象有3个外部关键字,要求实现:
        增加对象;
        删除对象;
        判断对象是否存在;


说明: 对象的三个外部关键字分别以KEY1,KEY2,KEY3表示。



#include "ObjMgt.h"#include <vector>using namespace std;typedef struct{unsigned int key1;unsigned int key2;unsigned int key3;}KEY;vector <KEY> allKey;/*************************************************************************功能:增加单个对象输入:key1  外部关键字 KEY1 key2  外部关键字KEY2key3  外部关键字KEY3输出:无返回:       -1 :失败(对象已经存在或者其它异常)       0 :成功***************************************************************************/int AddObject (unsigned int key1, unsigned int key2, unsigned int key3){    /*请实现*/if(allKey.size() > 10000)return -1;if(key1 > 65535 || key2 > 65535 || key3 > 65535)return -1;int i,j = allKey.size();for(i = 0; i < j;i++)if(allKey[i].key1 == key1 && allKey[i].key2 == key2 && allKey[i].key3 == key3)return -1;KEY k = {key1,key2,key3};allKey.push_back(k);    return 0;}/********************************************************************************功能:删除一个或多个对象输入:      key1 外部关键字 KEY1       key2 外部关键字 KEY2      key3 外部关键字 KEY3输出:无返回:无说明:用例保证参数取值为合法值和通配符0xFFFFFFFF, 通配符表示0~65535范围内的任意值;       举例:key1=1,key2=2,key3= 0xFFFFFFFF,表示删除key1=1,key2=2的所有对象;           key1,key2,key3取值全为0xFFFFFFFF时,表示删除所有对象。*********************************************************************************/void DeleteObject (unsigned int key1, unsigned int key2, unsigned int key3){    /*请实现*/bool allKey1,allKey2,allKey3;if(key1 == 0xffffffff)allKey1 = true;elseallKey1 = false;if(key2 == 0xffffffff)allKey2 = true;elseallKey2 = false;if(key3 == 0xffffffff)allKey3 = true;elseallKey3 = false;int i,j = allKey.size();vector<KEY>::iterator it  ;it = allKey.begin();while (it != allKey.end()){if(allKey1 || it->key1 == key1)if(allKey2 || it->key2 == key2)if(allKey3 || it->key3 == key3){it = allKey.erase(it);continue;}it++;}    return ;}/********************************************************************************功能:查询单个对象是否存在输入:      key1 外部关键字 KEY1       key2 外部关键字 KEY2      key3 外部关键字 KEY3输出:无返回:      0:不存在      1:存在**********************************************************************************/int IsObjectExist (unsigned int key1, unsigned int key2, unsigned int key3){    /*请实现*/if(key1 > 65535 || key2 > 65535 || key3 > 65535)return 0;int i,j = allKey.size();for(i = 0; i < j;i++)if(allKey[i].key1 == key1 && allKey[i].key2 == key2 && allKey[i].key3 == key3)return 1;    return 0;}/******************************************************************************************************Description     清空所有对象Prototype       void Clear();Input Param     无Output Param    无Return Value    无********************************************************************************************************/void Clear(void){    /*在这里实现功能*/allKey.clear();    return;}


1 0