以CMapStringToString为例,我查过多个版本的MSDN中其[]操作符的用法,大概意思是:
它是SetAt方法的一个简单的替代函数,所以它只能用作左值,如果映射表中没有指定的key,则
新建一项。
这个操作符没有与之对于的右值操作符,因为有可能出现在映射表中找不到Key的情况,请使用
Lookup函数取得指定Key对应的值。上面是MSDN的大概意思,可是经过我无数次的实验,[]操作符是可以用作右值的,不信请试试下面的程序:
CMapStringToString test;
test["1234"] = "2234"; //用作左值
test["3234"] = "4234"; //用作左值
// test.SetAt("1234", "2234");
// test.SetAt("3234", "4234");
AfxMessageBox(test["1234"]); //用作右值
AfxMessageBox(test["3234"]); //用作右值