【发布时间】:2020-03-17 02:42:28
【问题描述】:
mapinsert 函数将{string,int} 作为参数。这是如何工作的?
#include <map>
using namespace std;
int main(int argc, char *arg[])
{
map<string, int> m;
m.insert({"a", 1});
}
【问题讨论】:
-
已铸造。编译器知道 m 的类型,对于编译器 {"a", 1} 来说,成为 m 的成员似乎没有问题。
-
如果您使用的是较旧的编译器(或编译为较旧的 C++ 标准),它可能无法识别传入的临时对象的意图。
标签: c++ stl initialization list-initialization