izo*_*ica 23 c# c++ vector deque
我几乎可以肯定这应该是重复但我搜索了一段时间,但找不到答案.我应该在C#中使用,以取代C++向量和deque 有效.也就是说,我需要一种能够高效地支持直接索引的结构,并且还支持以有效的方式从一端或两端(取决于向量或双端情况)进行删除.
在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..那么新的方法是什么?我又如何为deque案件做些什么呢?
Mat*_*son 18
没有内置的Deque容器,但有几种可用的实现.
来自Stephen Cleary的这是一个很好的.这提供了O(1)操作来索引,也可以在开头插入并在末尾追加.
与Vector相当的C#是List<T>.索引访问是O(1),但插入或删除是O(N)(除了最后插入,即O(1)).
小智 9
对于C#vector,一个好的候选人System.Collection.Generic.List就像其他人提到的那样.
在C++中最接近deque的System.Collection.Generic.LinkedList是双链表.