从变量映射键和值初始化

时间:2015-01-01 02:02:01

标签: c++ dictionary initialization

我很难从代码中计算的变量初始化地图(键和值)。例如以下示例:

int a = 5;
int b = 3;
map<int, int> order;
order[(a)] = b;

我试图将变量a作为键,将变量b作为值。我允许这样做吗?

1 个答案:

答案 0 :(得分:2)

  

“我允许这样做吗?”

是的,您当然可以这样做(请参阅 std::map::operator[] )。它完全没问题(虽然(a)的括号是多余的)。 对于密钥ba的值将正确插入到地图中,无论它是否存在(在这种情况下b将只替换已存在的关联值)。

您应该注意的情况是尝试按键值访问std::map,而不是在第一位插入值,例如

int storedValue = order[a];

在这种情况下,将创建order[a]的默认初始化条目,这不是您希望它在大多数用例中的用途。