gpt4 book ai didi

c++:随机访问动态数组

转载 作者:行者123 更新时间:2023-11-28 02:49:30 25 4
gpt4 key购买 nike

以下是我的场景:

我正在使用大型2D 动态数组 来存储具有以下属性的元素:

int
vector

现在,数组元素是随机访问的。因此,访问元素的时间差异很大。

我希望访问元素的时间要小,并且对于所有加入都是恒定的。

动态数组最适合我的场景吗?

我尝试使用 unordered_map of boost,但与动态数组相比,无序映射似乎需要更多时间来访问元素。

请给出建议:

代码:

代码:

for( counter1=0; counter1< sizeof(chunk1); ++counter1)
{
//code lines skipped
IndexEntries &data=IndexTable[chunk1[counter1]][chunk1[counter1+1]];
DoubleTableEntries &GetValue=NewDoubleTable[NextState_chunk1][data.index];
NextState_chunk1= GetValue.Next_State;
++Bcount;
buffer[ Bcount]=NextState_chunk1;
++counter1;

// Code lines skipped
}

这里的 NewDoubleTable 是我从中随机访问元素的二维数组。

最佳答案

就速度而言,没有什么可以击败数组访问,所有更高级别的容器,如 unordered_map<> 添加额外的工作。何时可以使用普通数组或 vector<> ,这始终是您可以获得的最快速度。

你需要unordered_map<>仅当您有一个人口稀少的键空间时,出于空间考虑,禁止使用普通数组/vector 。在这种情况下,unordered_map<>可以将稀疏键空间中的键转换为散列索引到密集填充的散列表中,而散列表又不过是一个数组。

关于c++:随机访问动态数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23379826/

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