一些cpp类接受initializer_list作为输入,例如:
std::map<std::string, int> m{{"CPU", 10}, {"GPU", 15}, {"RAM", 20}};
或
std::map<std::string, int> m={{"CPU", 10}, {"GPU", 15}, {"RAM", 20}};
是否可以定义一个initializer_list变量,然后用它来调用构造函数?即类似:
auto il = {{"CPU", 10}, {"GPU", 15}, {"RAM", 20}};
std::map<std::string, int> m = il;
是的。示例:
#include <initializer_list>
#include <map>
#include <string>
int main() {
std::initializer_list<std::pair<const std::string, int>> il = {
{"CPU", 10}, {"GPU", 15}, {"RAM", 20}};
std::map<std::string, int> m = il;
}