Cap*_*_D1 5 c++ arrays unordered-map class object
我可能没有很好地表达这个问题,但这里有一个例子来说明我的意思。可以unordered_map像这样创建:
unordered_map<string,int> map = {
{"A", 3},
{"B", 2},
{"C", 1}
};
Run Code Online (Sandbox Code Playgroud)
我想知道如何制作自己的类可以以这种方式运行?例如,如何解释传递给映射的所有值?如何访问我分配给它的数组中的每个单独值?事实上,它是否会是一个数组,因为这些值不一定都共享一个类型?
您要找的班级是std::initializer_list。它是一个容器,就像 一样std::vector,您可以轻松地以相同的方式迭代它。只需定义采用以下内容的公共构造函数initializer_list:
class FromList {
public:
FromList(std::initializer_list<std::string> list) {
for (const auto &passed_list_entry: list) {
// We have the values here
}
}
};
// And using it:
FromList v = { "entry_1", "entry_2", "entry_3" };
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
285 次 |
| 最近记录: |