C++哈希表头文件

#ifndef _HASHTABLE_H_
#define _HASHTABLE_H_
#include <iostream>
#include <cstdlib>
using namespace std;

typedef
enum {
    Empty, Active, Deleted
}kindofitem;

typedef struct
{
    int key;
}datatype;

typedef struct{
    datatype data;
    kindofitem info;
}hashitem;

typedef struct{
    hashitem* arr;
    int table_size;
    int current_size;
}hashtable;

int initiate(hashtable* hash, int size);//初始化哈希表
int find(hashtable* hash, datatype x);//查找x元素对应的关键字
int insert(hashtable* hash, datatype x);//像哈希表中插入数组元素x,及设置它对应的关键字
int deleted(hashtable* hash, datatype x);//从哈希表中删除x数据元素
void destroy(hashtable* hash);//撤销函数
/*
int main()
{

system("pause");
return 0;
}
*/
int initiate(hashtable* hash, int size)
{
    hash->arr = (hashitem*)malloc(sizeof(hashitem)*size);//初始化,该数组
    hash->table_size = size;
    if (hash->arr == NULL)
    {
        cout << "初始化失败" << endl;