gpt4 book ai didi

c++ - 带有字符串键和自定义值字段的 std::map

转载 作者:太空狗 更新时间:2023-10-29 23:15:29 24 4
gpt4 key购买 nike

如何使用 string 键和自定义值字段创建 std::map

我想要一个如下所示的std::map:

 "Name" "abcd"
"age" "50"
"Address" "Street" "xxxx"
"PIN" "xxxx"
"District" "xxxx"
"Gender" "Male"

所以除了第三个字段之外,我所有的字段都是 string,string 类型。但地址本身是另一个带有 string string 对的映射。

如何在 C++ 中创建这样的 map ?

最佳答案

您需要映射类型是可以存储字符串或映射的类型。一种方法是使用 Boost.Variant :

typedef boost::variant<std::string, std::map<std::string, std::string>> Value;

typedef std::map<std::string, Value> TheMapYouWouldUse;

阅读我链接的文档以了解如何访问这些值。

另一种方法是提供您自己的受限解决方案。也许是这样的(有点hacky):

class Value
{
std::map<std::string, std::string> values;

public:
std::string& asString()
{ return values[""]; }

std::map<std::string, std::string>& asMap()
{ return value; }
};

界面当然会根据您的实际需要进行调整。

关于c++ - 带有字符串键和自定义值字段的 std::map,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29027400/

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