c#等价于c向量或双端队列

新手上路,请多包涵

我几乎可以肯定这应该是重复的,但我搜索了一段时间并找不到答案。我应该在 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 许可协议

阅读 576
2 个回答

没有内置的 Deque 容器,但有几种可用的实现。

这是 斯蒂芬·克利里的一篇好文章。这提供了 O(1) 操作来索引以及在开头插入并在结尾追加。

与 Vector 等效的 C# 是 List<T> 。索引访问是 O(1),但插入或删除是 O(N)(除了在末尾插入,即 O(1))。

原文由 Matthew Watson 发布,翻译遵循 CC BY-SA 4.0 许可协议

考虑 System.Collections.Generic.List 和其他来自 System.Collection.Generic 它们的用途与它们的 C++ 等效物相同。

此外,可能还有更多容器适合您。看 这里

原文由 bash.d 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏