设为首页 收藏本站
查看: 1172|回复: 0

[经验分享] 华为练习 对象管理器

[复制链接]

尚未签到

发表于 2016-6-6 09:10:16 | 显示全部楼层 |阅读模式
实现对象管理器功能,其中管理的对象有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  外部关键字KEY2
key3  外部关键字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.key1 == key1 && allKey.key2 == key2 && allKey.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;
else
allKey1 = false;
if(key2 == 0xffffffff)
allKey2 = true;
else
allKey2 = false;
if(key3 == 0xffffffff)
allKey3 = true;
else
allKey3 = 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.key1 == key1 && allKey.key2 == key2 && allKey.key3 == key3)
return 1;
return 0;
}
/******************************************************************************************************
Description     清空所有对象
Prototype       void Clear();
Input Param     无
Output Param    无
Return Value    无
********************************************************************************************************/
void Clear(void)
{
/*在这里实现功能*/
allKey.clear();
return;
}

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-226858-1-1.html 上篇帖子: 华为练习 删除重复字符 下篇帖子: 华为HUAWEI C8817L 内部存储空间不足
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表