我可能没有很好地表达这个问题,但这是我的意思的一个例子。安 unordered_map
可以像这样创建:
unordered_map<string,int> map = {
{"A", 3},
{"B", 2},
{"C", 1}
};
我想知道的是我怎样才能让我自己的类能够以这种方式运行?例如,如何解释传递给 map 的所有值?如何访问我分配给它的数组中的每个单独的值?事实上,它甚至是一个数组,因为值不一定都共享一个类型?
最佳答案
您要找的类(class)是 std::initializer_list
.它是一个容器,如 std::vector
,您可以轻松地以相同的方式对其进行迭代。只需定义接受 initializer_list
的公共(public)构造函数:
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" };
关于c++ - C++ 对象如何处理被分配数组文字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69277267/