华为练习 对象管理器

实现对象管理器功能,其中管理的对象有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[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;
	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[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;
}

华为练习 对象管理器,布布扣,bubuko.com

时间: 2024-11-03 21:51:42

华为练习 对象管理器的相关文章

[华为机试练习题]57.对象管理器

题目 代码 /*--------------------------------------- * 日期:2015-07-05 * 作者:SJF0115 * 题目:对象管理器 * 来源:华为机试练习题 -----------------------------------------*/ #include <iostream> #include "ObjMgt.h" #include <vector> using namespace std; struct Ob

&nbsp; &nbsp; 华为 ACL 网络安全

华为ACL网络安全 一. 1.物理层安全 墙上的不同的网线接口 连接交换机的端口关系: 2.数据链路层安全 ADSL拨号账号和密码 mac地址绑定 交换机端口连接计算机数量创建vlan: 3.网络层安全  基于源IP地址 目标IP地址控制: 4.传输层安全   会话攻击 LAND攻击 syn洪水攻击: 5.应用层安全  登陆密码: 6.网络层安全 标准的ACL, 基于源地址进行控制: 7.访问控制列表 扩展源地址: 基于原地址 目标地址: 端口号进行控制. 二. 使用标准的ACL配置网络安全 实

华为3026c交换机配置tftp备份命令

华为3026c交换机ftp备份配置:方法一:iis建ftp服务器,要设置用户名密码(百度经验)前提:先找一台能ping通交换机的电脑,通过iis建ftp服务器.1.查看当前路径下的文件和目录>dir2.连接ftp服务器>ftp 192.168.104.153.输入ftp服务器用户名和密码:bhjftp4.指定ftp传输txt格式为bin:[ftp]bin5.开始上传:[ftp]put vrpcfg.txt 方法二:SolarWinds-TFTP-Server建ftp服务器,设置共享文件路径,其

华为刀片,IBM刀片服务器将外部EXT端口流量复制给内部INT端口的实现方法不同

如何在刀片服务器中将外部端口EXT的流量复制给内部INT端口用于采集DNS流量 (1)对于IBM刀片服务器的北电Nortel_32R1860交换模块112.4.20.12DNS抓包的问题已经搞定 经过摸索和测试,感觉北电的交换机模块不是采用镜像命令来实现复制流量(虽然有相应的port-mirroring monitor-port...命令,但并不生效),而应该是在相同vlan就可以复制流量,如果要把ext3的流量复制给int14,只要把ext3和int14放在同一个vlan11下,都不打tagg

华为FusionCloud 云计算解决方案及相关资料下载

华为FusionCloud云计算解决方案引入水平融合.垂直融合.接入融合和数据融合四位一体的全融合,对企业与行业传统数据中心的IT基础设施的进行"融合重构", 帮助企业化繁为简,实现商业价值. FusionCloud 彻底打破原有的笨重的IT基础设施在支撑企业核心业务效率与成本方面的束缚与障碍,把企业传统数据中心改造成为一个高度简化.标准化.自动化和弹性的云数据中心,使得企业的IT支撑系统从企业的"成本中心"转型成为推动企业核心业务不断发展的引擎. 相关资料下载地址

【华为OJ】201301 JAVA 题目0-1级 将数组分为相等的两组

描述:  编写一个函数,传入一个int型数组,返回该数组能否分成两组,使得两组中各元素加起来的和相等,并且,所有5的倍数必须在其中一个组中,所有3的倍数在另一个组中(不包括5的倍数),能满足以上条件,返回true:不满足时返回false. 知识点: 语言基础,字符串,循环,函数,指针,枚举,位运算,结构体,联合体,文件操作,递归    题目来源: 内部整理  练习阶段: 初级  运行时间限制: 10Sec 内存限制: 128MByte 输入: 输入输入的数据个数 输入一个int型数组 输出: 返

华为链路捆绑,Hybrid-VLAN,DHCP,浮动路由,三层交换

综合试验 实验构思图:                              实验要求: 一. VLAN10成员可以和vlan20,30,40的成员通讯,其它vlan则不能互相通讯: 二. 让所以PC都能访问外网AR2: 三. 让PC4能够通过DHCP技术获得IP: 四. AR1和LSW3之间做一个备份链路捆绑: 五. 使用Hybrid-VLAN方法划分VLAN; 六. 让所有PC访问外网时通过13.0网段走,而12.0做为备份链路. 实验步骤: 1.俺图上要求给PC1,2,3配置上相应的I

【华为技术】VRP平台基本操作

一.显示系统信息 <Huawei>display version 图上所示可以知道VRP平台信息,运行的版本,运行的时间 二.修改和查看设备系统时间参数 1.查看时间 <Huawei>display clock 2.修改系统日期和时间 三.进入系统视图界面 <Huawei>system-view 可以配置接口.路由协议等 四.修改设备名称 五.配置登录标语信息 [R1]header shell information "Welcome to Huawei ro

【华为技术】静态路由及默认路由

网络拓扑图: 规模比较小,采用静态路由和默认路由互通. 一.IP地址配置 已AR1为例子: <AR1>system-view --进入系统视图模式 [AR1]sysname R1 ---修改路由器名字 [R1]interface LoopBack 0 ---进入接口视图模式 [R1-LoopBack0]ip address 10.0.1.1 24 ---配置接口ip地址 //[R1-LoopBack0]ip address 10.0.1.1 255.255.255.0 子网掩码也可以这样子的