运算符[]重载更新2个值C ++

时间:2018-10-04 21:31:38

标签: c++ operator-overloading

有人知道是否可以重载[]运算符并用输入更新两个值。

示例:

我现在在班级有以下功能:



    void add(T1 input1, T2 input2)
    {
        // both variables are std::map
        normal_map[input1] = input2;
        reversed_map[input2] = input1;
    }

但是我想让[]运算符更新两个值,例如:



    class["input1"] = input2; // should do the same as the above add function

任何帮助将不胜感激

1 个答案:

答案 0 :(得分:1)

下标运算符仅用于通过单个返回的引用(cppreference)授予访问权限:

R& T::operator[](S b)

因此,如果不创建某种代理类,将无法一次访问这两个地图,这会使通过下标运算符进行访问非常违反直觉。