我可以更快地找到比数组更多的索引吗?

碎纸机2500

我将顶点保留在列表中,我只想将顶点添加到列表中(如果尚未包含顶点)。如果它不包含它,我将其添加到列表中,然后将索引添加到名为tris的列表中。但是,如果列表确实包含顶点,则应该找到其所在位置的索引,然后将该索引添加到tris列表中。这是我想出的最快的方法。有没有更快的方法?

Hashtable vertIndexes;
List<Vector3> verts;
List<int> tris;

foreach (var vert in vertsOutput)
{
    Vector3 p = point + vert;
    if(!vertIndexes.Contains(p))
    {
        vertIndexes.Add(p, verts.Count);
        tris.Add(verts.Count);
        verts.Add(p);
    }
    else
    {
        tris.Add((int)vertIndexes[p]);
    }
}
usr

目前,您正在为每个项目执行两个哈希表操作。您可以保存一个:

Dictionary<Vector3, int> vertIndexes;
...

int index;
if(vertIndexes.TryGetValue(p, out index))
 //present at given index
else
 //not present

TryGetValue 同时测试是否存在并返回存储的值。

使用自定义哈希表可能会更快。Dictionary具有一些一般性所需的开销,而您不需要。例如,它使用的模运算符非常昂贵,并且不需要哈希值良好的哈希码。但是,这超出了此答案的范围。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我可以使用 locate 的功能来更快地找到符号链接吗?

来自分类Dev

使用索引数组更快地进行循环

来自分类Dev

Python可以更快地替代字典吗?

来自分类Dev

我可以更快地执行dplyr + data.table任务吗?

来自分类Dev

我可以比使用r中不同的Package'dplyr'函数更快地寻找不同的项目吗?

来自分类Dev

我可以在不使用文件缓存的情况下更快地复制大文件吗?

来自分类Dev

我可以更快地制作这个宏/代码吗?(Excel VBA 重复查找器)

来自分类Dev

我可以在不使用文件缓存的情况下更快地复制大文件吗?

来自分类Dev

如何使我的代码更快地找到最小值?

来自分类Dev

我可以更快地将我的1D向量转换为2D向量吗?

来自分类Dev

UWP应用程序可以更快地加载图像吗?

来自分类Dev

用C可以更快地计算RMS值吗?

来自分类Dev

可以用numpy更快地完成吗?

来自分类Dev

BeautifulSoup需要永远,这可以更快地完成吗?

来自分类Dev

可以更快地执行更复杂的循环吗?

来自分类Dev

启用优化后,代码可以更快地运行一个数量级。我想念什么吗?

来自分类Dev

我的静态方法似乎可以通过重用更快地执行。为什么?它会被缓存吗?

来自分类Dev

我可以扩展内置数组的索引器吗?

来自分类Dev

我可以在WebGL的GLSL中用作数组索引吗?

来自分类Dev

我可以覆盖`。<digit>`来指向数组的索引吗?

来自分类Dev

我可以在SELECT语句中索引到数组文字吗?

来自分类Dev

可以更快地找到日志文件中每个电话号码的合适前缀的算法?

来自分类Dev

拓扑排序,更快地找到依赖项

来自分类Dev

我可以使这个宏更快吗?

来自分类Dev

如何让我拥有的团队跑步者更快地找到工作?

来自分类Dev

如何更快地对列表进行索引?

来自分类Dev

如果我使用byte而不是int,我的循环会更快地迭代吗?

来自分类Dev

如果我使用byte而不是int,我的循环会更快地迭代吗?

来自分类Dev

C#功能在调用后可以更快地进行时间测量吗?

Related 相关文章

  1. 1

    我可以使用 locate 的功能来更快地找到符号链接吗?

  2. 2

    使用索引数组更快地进行循环

  3. 3

    Python可以更快地替代字典吗?

  4. 4

    我可以更快地执行dplyr + data.table任务吗?

  5. 5

    我可以比使用r中不同的Package'dplyr'函数更快地寻找不同的项目吗?

  6. 6

    我可以在不使用文件缓存的情况下更快地复制大文件吗?

  7. 7

    我可以更快地制作这个宏/代码吗?(Excel VBA 重复查找器)

  8. 8

    我可以在不使用文件缓存的情况下更快地复制大文件吗?

  9. 9

    如何使我的代码更快地找到最小值?

  10. 10

    我可以更快地将我的1D向量转换为2D向量吗?

  11. 11

    UWP应用程序可以更快地加载图像吗?

  12. 12

    用C可以更快地计算RMS值吗?

  13. 13

    可以用numpy更快地完成吗?

  14. 14

    BeautifulSoup需要永远,这可以更快地完成吗?

  15. 15

    可以更快地执行更复杂的循环吗?

  16. 16

    启用优化后,代码可以更快地运行一个数量级。我想念什么吗?

  17. 17

    我的静态方法似乎可以通过重用更快地执行。为什么?它会被缓存吗?

  18. 18

    我可以扩展内置数组的索引器吗?

  19. 19

    我可以在WebGL的GLSL中用作数组索引吗?

  20. 20

    我可以覆盖`。<digit>`来指向数组的索引吗?

  21. 21

    我可以在SELECT语句中索引到数组文字吗?

  22. 22

    可以更快地找到日志文件中每个电话号码的合适前缀的算法?

  23. 23

    拓扑排序,更快地找到依赖项

  24. 24

    我可以使这个宏更快吗?

  25. 25

    如何让我拥有的团队跑步者更快地找到工作?

  26. 26

    如何更快地对列表进行索引?

  27. 27

    如果我使用byte而不是int,我的循环会更快地迭代吗?

  28. 28

    如果我使用byte而不是int,我的循环会更快地迭代吗?

  29. 29

    C#功能在调用后可以更快地进行时间测量吗?

热门标签

归档