编辑:这个结构是非常糟糕的设计,不要使用它!
是否可以在 C++11 中初始化指向对象的指针列表(同时初始化所有内容)?
例如,假设我要创建 my_list
这是类型:
list<pair<string, map<string, string> *> *>
.
我想用原始值初始化它。
list<pair<string, map<string, string> *> *> my_list = { ??? }
???
: 创建指向新对原始字符串的新指针和指向原始字符串映射的新指针。
(为什么我需要这样做:这个数据结构正在存储从文件中读取的配置,但如果找不到该文件,我需要在我的代码中使用默认值)
最佳答案
是的,当然:
list<pair<string, map<string, string> *> *> x {
new pair<string, map<string, string> *> {
"hello", new map<string, string> { {"a", "1"}, {"b", "2"} } },
new pair<string, map<string, string> *> {
"world", new map<string, string> { {"a", "1"}, {"b", "2"} } },
};
这是糟糕的设计。不要这样做。
关于C++11 对象指针列表的初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22777068/