C ++中的矢量类可以像C#中的Dictionary类一样使用吗?

时间:2015-04-01 14:45:13

标签: c# c++ vector hashtable

C ++中的矢量类可以像C#中的Dictionary类一样使用吗?您基本上可以拥有相同类型的矢量类存储类。该类的成员可以被视为密钥,其余成员可以被视为数据。

2 个答案:

答案 0 :(得分:0)

不,在添加成员时,矢量类通常不会保持排序状态。这意味着您无法有效地查找其中的项目,您需要进行线性扫描。

std::unordered_map用于提供O(1)密钥查找的键值容器。

答案 1 :(得分:0)

在C ++中创建字典的好方法是使用map或unordered_map。由于map是关联容器,因此它具有键值对。密钥用于查找,值是与之关联的数据。所以在这种情况下,关键是单词,值将是定义。

我建议您使用unordered_map,因为查找速度平均为恒定时间,最差时为O(N)