c++具有相同键类型和不同项目类型的映射

发布于 2024-11-05 21:50:09 字数 520 浏览 0 评论 0原文

可能的重复:
如何制作异构 boost::map?

可能有C++ 中的映射具有相同类型的键和不同类型的项目? 例如:

 _______________________
 |    key    |   value   |
 |===========|===========|
 | string    |   int     |
 |-----------|-----------|
 | string    |   char    |
 |-----------|-----------|
 | string    |  vector   |
 |-----------|-----------|
 | string    |   ....    |

Possible Duplicate:
how do you make a heterogeneous boost::map?

It's possible have a map in C + + with the same type for the key and different types of items?
For example:

 _______________________
 |    key    |   value   |
 |===========|===========|
 | string    |   int     |
 |-----------|-----------|
 | string    |   char    |
 |-----------|-----------|
 | string    |  vector   |
 |-----------|-----------|
 | string    |   ....    |

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

○闲身 2024-11-12 21:50:09

是的,您可以存储可变参数类型,例如 boost::any 或(我个人偏好,boost::variant),

您的值类型可以定义为:

typedef boost::variant<int, char, ...> value_type;

因此 比 map 中的值要大,然后一旦提取了值,就可以使用访问者概念进行处理。

Yes you can, store a variadic type, such as boost::any or (my personal preference, boost::variant)

So your value type can be defined as:

typedef boost::variant<int, char, ...> value_type;

Store than in the map, and then once you've extracted values, use the visitor concept to process.

甜尕妞 2024-11-12 21:50:09

我不太清楚你为什么要这样做,但我相信你可以使用 map

真正想做什么?

I'm not sure quite why you would want to do this, but you could use a map<std::string, boost::any> I believe.

What are you really trying to do?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文