我几乎可以肯定这应该是重复的,但我搜索了一段时间并找不到答案。我应该在 C# 中使用什么来 有效 地替换 C++ 向量和双端队列。那就是我需要一种结构,它可以有效地支持直接索引,并且还支持以有效的方式再次从一端或两端删除(取决于向量或双端队列)。
在 java 中,我通常至少将 ArrayList 用于向量,但对于 C#,我发现 这个来源 指出: ArrayList resizes dynamically. As elements are added, it grows in capacity to accommodate them. It is most often used in older C# programs.
。那么这样做的新方法是什么?我又该如何处理双端队列案例?
原文由 Ivaylo Strandjev 发布,翻译遵循 CC BY-SA 4.0 许可协议
没有内置的 Deque 容器,但有几种可用的实现。
这是 斯蒂芬·克利里的一篇好文章。这提供了 O(1) 操作来索引以及在开头插入并在结尾追加。
与 Vector 等效的 C# 是
List<T>
。索引访问是 O(1),但插入或删除是 O(N)(除了在末尾插入,即 O(1))。