从变量映射键和值初始化

Map key and value initialization from a variable

我很难从代码中计算的变量初始化映射(包括键和值)。比如下面的例子:

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

我正在尝试将变量 a 作为键,将变量 b 作为值。我可以这样做吗?

"Am I allow to do that ?"

当然可以(请参阅 std::map::operator[])。完全没问题(尽管 (a) 的括号是多余的)。 b 的值将正确地插入到键 a 的映射中,无论它之前是否存在(在这种情况下 b 将只替换已经存在的关联值)。

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

int storedValue = order[a];

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