栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C++重载下标运算符(关键字到值的映射)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C++重载下标运算符(关键字到值的映射)

根据StaffList类,编写它的下标运算符的重载

StaffList类:

class StaffList
{
    friend ostream& operator<<(ostream& o, const StaffList& s1);
public:
    //构造函数
    StaffList(int max = 10) :MaxSize(max), count(0)  //当前员工数为0
    {
        IdArr = new string[MaxSize];  //创建id的动态数组
        NameArr = new string[MaxSize];  //创建姓名的动态数组
    }
    //析构函数
    ~StaffList()
    {
        delete[] IdArr;
        delete[] NameArr;
    }
private:
    string* IdArr;  //员工id
    string* NameArr;  //员工姓名
    int count;   //当前员工数
    const int MaxSize;  //员工最多人数,即动态数组的大小
};

ostream& operator<<(ostream& o, const StaffList& s1)
{
    for (int i = 0; i < s1.count; i++)
    {
        cout << s1.IdArr[i] << ":" << s1.NameArr[i] << endl;
    }
    return o;
}

mian函数里的测试代码:

int main()
{   
    StaffList s1;
    //插入两条信息
    s1["A001"] = "Bob";
    s1["A002"] = "Klieam";
    cout << s1;
    cout << "-------------" << endl;

    //修改信息
    s1["A001"] = "Alice";
    s1["A002"] = "Kira";
    s1["A003"] = "David";
    cout << s1;
    return 0;
} 

运行效果: 

 

最终代码: 
class StaffList
{
    friend ostream& operator<<(ostream& o, const StaffList& s1);
public:
    //构造函数
    StaffList(int max = 10) :MaxSize(max), count(0)  //当前员工数为0
    {
        IdArr = new string[MaxSize];  //创建id的动态数组
        NameArr = new string[MaxSize];  //创建姓名的动态数组
    }
    //析构函数
    ~StaffList()
    {
        delete[] IdArr;
        delete[] NameArr;
    }
    //重载的下标运算符
    string& operator[](const string& id)
    {
        int i;
        for (i = 0; i < count; i++)
        {
            if (IdArr[i] == id)
            {
                return NameArr[i];
            }
        }
        IdArr[i] = id;
        count++;
        return NameArr[i];
    }
private:
    string* IdArr;  //员工id
    string* NameArr;  //员工姓名
    int count;   //当前员工数
    const int MaxSize;  //员工最多人数,即动态数组的大小
};

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/767908.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号