C#等效用于C ++载体或双端队列(c# equivalent for c++ vector or

2019-08-17 23:17发布

我几乎可以肯定这应该是一个重复的,但我搜索了一段时间,但没有找到答案。 我应该在C#中使用能够有效地替代C ++向量和deque。 即我需要effieciently支持直接索引的结构,同时还支持从一端或两端再次(取决于载体或双端队列的情况下)以有效的方式删除。

在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. ArrayList resizes dynamically. As elements are added, it grows in capacity to accommodate them. It is most often used in older C# programs. 。 那么什么是新的方式来做到这一点? 并再次什么我为双端队列时怎么办?

Answer 1:

有没有内置的Deque容器,但也有几个实现。

下面是从斯蒂芬·克利一个好 。 这提供了O(1)操作,以索引并且还在开始插入和结束时附加。

的C#相当于矢量是List<T> 索引访问是O(1),但插入或除去是O(N)(比在端部,这是O插入其它(1))。



Answer 2:

对于C# vector ,一个很好的候选人是System.Collection.Generic.List为他人提及。
最近在C双端队列++是System.Collection.Generic.LinkedList这是一个双向链表。



Answer 3:

考虑System.Collections.Generic.List和来自其它System.Collection.Generic它们用于相同的目的的C++当量。
此外,还有可能对你更多的容器。 你看这里 。



文章来源: c# equivalent for c++ vector or deque