[]
运算符是否接受可变长度参数或变量类型?此行为是否与va_args
类似,或者是最后一个隐式传递的参数?
有人可以解释为什么以下在编译期间没有错误吗? (在VS2010中测试)
int main()
{
typedef std::map<int, std::string> KeyValueMap;
typedef std::vector<int> IntList;
IntList l(10);
int r = l[l, "C", 1];
KeyValueMap m;
m[m, 1, "D", 2];
int* i = new int[10];
int x = i["a", i, 1];
return 0;
}
答案 0 :(得分:6)
逗号(,
)是一个运算符,它会计算所有参数并返回最后一个参数。
int x = i["a", i, 1];
基本上等同于int x = i[1];
。