chunzhuaian 2022-11-24 09:42 采纳率: 50%
浏览 0
已结题

hash那个字母所在的地方老是报错

哈希表代码输入不对
void hash_table::insert(User u) {
    
    int name_num = hash(u.getName());
    if (sexValid(u.getSex()) == false) {
        cout << "性别信息无效!" << endl;
        return;
    }
    if (numValid(u.getNum()) == false || numValid(u.getTel()) == false) {
        cout << "数字信息无效!" << endl;
        return;
    }
    vector<User>::iterator it;
    for (it = vec[name_num].begin(); it != vec[name_num].end(); it++)
    if (it->getName() == u.getName()) {
        cout << "插入失败!" << endl;
        return;
    };
    vec[name_num].push_back(u);
    if (initial == false) cout << "插入成功" << endl;
}

void hash_table::retrieve(string name) {
    int len = vec[hash(name)].size();
    int i, count;
    count = 0;
    for (i = 0; i < len; i++) {
        count++;
        if (vec[hash(name)][i].getName() == name && vec[hash(name)][i].getValid()){
            cout << vec[hash(name)][i].getName() << ' ' << vec[hash(name)][i].getSex() << ' '
                << vec[hash(name)][i].getNum() << ' ' << vec[hash(name)][i].getTel() << endl;
            cout << "查找成功" << endl;
            cout << "比较时间: " << count << endl;
            return;
        }
    }

    if (i == len) cout << "查找失败" << endl;
}
 
//  删除操作 
void hash_table::del(string name) {
    int len = vec[hash(name)].size();
    int i;
    for (i = 0; i < len; i++)
        if (vec[hash(name)][i].getName() == name && vec[hash(name)][i].getValid()){
            vec[hash(name)][i].setValid(false);
            cout << "删除成功" << endl;
            return;
        }
    if (i == len) cout << "删除失败!" << endl;
}

hash那个字母所在的地方老是报错,这是为什么

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 12月2日
    • 创建了问题 11月24日

    悬赏问题

    • ¥15 oracle集群安装出bug
    • ¥15 关于#python#的问题:自动化测试
    • ¥20 问题请教!vue项目关于Nginx配置nonce安全策略的问题
    • ¥15 教务系统账号被盗号如何追溯设备
    • ¥20 delta降尺度方法,未来数据怎么降尺度
    • ¥15 c# 使用NPOI快速将datatable数据导入excel中指定sheet,要求快速高效
    • ¥15 再不同版本的系统上,TCP传输速度不一致
    • ¥15 高德地图2.0 版本点聚合中Marker的位置无法实时更新,如何解决呢?
    • ¥15 DIFY API Endpoint 问题。
    • ¥20 sub地址DHCP问题