我很难从代码中计算的变量初始化地图(键和值)。例如以下示例:
int a = 5;
int b = 3;
map<int, int> order;
order[(a)] = b;
我试图将变量a作为键,将变量b作为值。我允许这样做吗?
答案 0 :(得分:2)
“我允许这样做吗?”
是的,您当然可以这样做(请参阅 std::map::operator[]
)。它完全没问题(虽然(a)
的括号是多余的)。
对于密钥b
,a
的值将正确插入到地图中,无论它是否存在(在这种情况下b
将只替换已存在的关联值)。
您应该注意的情况是尝试按键值访问std::map
,而不是在第一位插入值,例如
int storedValue = order[a];
在这种情况下,将创建order[a]
的默认初始化条目,这不是您希望它在大多数用例中的用途。