我想通过它们的名称和索引来存储数据。换句话说,我想将string
名称映射到对象,并为他们提供自定义顺序。
我首先想到的是std::vector
对string
对和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]
名称的唯一性。此外,首先按顺序对对象进行分组是错误的,因为从逻辑上讲,它们的第一个顺序区别是名称。
我需要一个允许名称和索引访问的数据结构。
{{1}}
此用例是否已有数据结构?如果没有,我怎样才能把它们放在一起,最好是使用标准库?此外,我想要一种方法在给定元素之后的位置插入新元素,而不移动所有其他元素。