有人知道是否可以重载[]运算符并用输入更新两个值。
示例:
我现在在班级有以下功能:
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
任何帮助将不胜感激
答案 0 :(得分:1)
下标运算符仅用于通过单个返回的引用(cppreference)授予访问权限:
R& T::operator[](S b)
因此,如果不创建某种代理类,将无法一次访问这两个地图,这会使通过下标运算符进行访问非常违反直觉。