我有一个 C++ 片段,看起来像这样:
std::list<std::vector<int>> lv;
lv.push_back({});
std::cout << lv.size() << std::endl; // "1"
lv.insert(lv.end(), {}); // Oops!
// lv.insert(lv.end(), std::vector<int>()); // OK
std::cout << lv.size() << std::endl; // Still got "1", but why?
Run Code Online (Sandbox Code Playgroud)
如您所见,当{}用于创建 default 时std::vector<int>,插入根本没有发生。虽然我知道在使用 C++ 的初始化列表时有很多微妙之处,但我想知道这个例子中的问题是什么?
谢谢!