gpt4 book ai didi

c++ - 在 C++ 中映射多个键

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:30:16 26 4
gpt4 key购买 nike

我想通过名称和索引来存储数据。换句话说,我想将 string 名称映射到对象,并为它们指定自定义顺序。

我首先想到的是 std::vector 成对的 string 键和对象。顺序由 vector 中的位置给出。

std::vector<std::pair<std::string, object> >

但这种方法似乎不是最佳选择,因为它不会自动检查 string 名称的唯一性。此外,首先按顺序对对象进行分组感觉是错误的,因为从逻辑上讲,它们的第一个顺序区别就是名称。

我需要一个允许通过名称和索引进行访问的数据结构。

std::magic<std::string, unsigned int, object> collection;

// access by either string or unsigned int key
collection.insert("name", 42, new object());
collection["name"]
collection[42]

这个用例是否已经有数据结构?如果没有,我怎么能把它们放在一起,最好是使用标准库?另外,我想要一种在给定元素之后的位置插入新元素而不移动所有其他元素的方法。

最佳答案

Boost 专门为此目的提供了一组容器,请参阅:boost::multiindex

关于c++ - 在 C++ 中映射多个键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15854071/

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