c++ - 将 String(同一内存)用于 Map 索引和 Object 名称

标签 c++ std

我有一个 Map(用作倒排索引)和一个对象列表,其中每个对象都有一个名称。

有没有办法为两者分配完全相同的内存空间?

类似于: map 有字符串,每个对象都有一个指向 map 键的指针?

我想实现这样的目标。

vector 中“String1”的索引是什么? vector 的索引 3 上的字符串是什么?

最佳答案

除非您确实需要,否则我建议不要进行此类空间优化。

实现此目的的一种方法是使用指针而不是对象。更安全的方法是使用智能指针。您的对象列表将包含对象的智能指针,您可以使用这些智能指针反向映射。

关于c++ - 将 String(同一内存)用于 Map 索引和 Object 名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23507758/

相关文章:

c++ - std::deque 真的是线程安全的吗?

c++ - STL map.find返回所有元素

c++ - 嵌套循环最有可能因为不正确的 bool 运算符而重复自身 C++

c++ - 如何以五个数字的行显示输出?

c++ - appendChild xml c++ 无法按需工作

c++ - 如何从 vtkDataArray 获取 VTK 的元组大小

c++ - 标准流适配器

c++ - 如何更改文本和背景颜色?

c++ - VS2012 中的 std::variate_generator

c++ - C++ 字符串散列是对字符串还是内存地址进行散列?