C++ c++;具有o(1)查找的索引容器

C++ c++;具有o(1)查找的索引容器,c++,indexing,find,dataset,containers,C++,Indexing,Find,Dataset,Containers,我将把char存储在某个容器中,然后从字符串中提取char,并在该容器中查找字符串中char的索引。 我还需要做相反的事情,取一个索引,找出那里有什么字符 所以更像是: container<char> c; int index = c.indexOf('a'); char letter = c[12]; 能够在两个方向上查找的通用数据结构是双向映射。如果使用哈希表实现,它的查找复杂性应该是恒定的 现在,如果我们可以假设char是8位宽的,并且索引是连续的,那么我们可以使用一种非常简

我将把char存储在某个容器中,然后从字符串中提取char,并在该容器中查找字符串中char的索引。 我还需要做相反的事情,取一个索引,找出那里有什么字符

所以更像是:

container<char> c;
int index = c.indexOf('a');
char letter = c[12];

能够在两个方向上查找的通用数据结构是双向映射。如果使用哈希表实现,它的查找复杂性应该是恒定的


现在,如果我们可以假设
char
是8位宽的,并且索引是连续的,那么我们可以使用一种非常简单的数据结构:只需将字符存储在一个数组中。使用另一个大小数组
1查找什么?在发布此内容之前,您做过任何研究吗?关于
map
unordered\u map
?是的,我一直在做一些研究并尝试不同的东西。地图对我没有帮助,我可以声明一张地图,按键查找会很快。但找到索引背后的键将很慢。Set似乎也没有达到我的期望。这听起来像是哈希表的工作?@AleksanderNaumenok这应该是问题的一部分,而不仅仅是评论。两张地图怎么样?然后在两个方向上进行快速查找
int index = 'a'-myString[0]; //for lookup
char c = myString[index];    //for index