gpt4 book ai didi

c++ - 自定义聚合初始值设定项列表构造函数

转载 作者:行者123 更新时间:2023-12-02 10:17:18 25 4
gpt4 key购买 nike

例如,nlohmann json提供了一种将聚合初始化器列表转换为JSON对象的方法:

json j = {
{"pi", 3.141},
{"happy", true},
{"name", "Niels"},
{"nothing", nullptr},
{"answer", {
{"everything", 42}
}},
{"list", {1, 0, 2}},
{"object", {
{"currency", "USD"},
{"value", 42.99}
}}
};
C++ std::map也有一个aggeragte初始化器列表
{
{"one": 1},
{"two": 2}
}
我很好奇您如何编写自定义(汇总)初始化列表初始化

最佳答案

在标准库中学习方法是很容易的。

std::map constructor:

map( std::initializer_list<value_type> init,
const Compare& comp = Compare(),
const Allocator& alloc = Allocator() );

value_type
std::pair<const Key, T>, Key is std::string, T is int

所以构造函数是
map( std::initializer_list<std::pair<std::string, int>> init,
const Compare& comp = Compare(),
const Allocator& alloc = Allocator() );

可以像
{
std::pair("one", 1),
std::pair("two", 2),
}

然后看看 std::pair constructor
pair( const T1& x, const T2& y );

它可以像
std::pair<std::string, int> a{"one", 1};

要么
std::pair<std::string, int> a = {"one", 1};

综合以上因素,可以像
{
{"one", 1},
{"two", 2}
}

关于c++ - 自定义聚合初始值设定项列表构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61512878/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com