c#equivalente para c++ vector o deque
(3)
Considere System.Collections.Generic.List
y otros de System.Collection.Generic
que cumplen el mismo propósito que sus equivalentes de C++
.
Además, podría haber más contenedores para usted. Mira here
Estoy casi seguro de que esto debería ser un duplicado, pero busqué un tiempo y no pude encontrar la respuesta. ¿Qué debo usar en C # para reemplazar C ++ vector y deque eficientemente ? Es decir, necesito una estructura que admita la indexación directa de manera eficiente y que también admita la eliminación de uno o ambos extremos (según el caso del vector o el deque) nuevamente de manera eficiente.
En java por lo general uso ArrayList al menos para vector pero para C # Encontré esta fuente que dice: 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.
. Entonces, ¿cuál es la nueva forma de hacer esto? Y otra vez, ¿qué hago para el caso deque?
No hay un contenedor Deque incorporado, pero hay varias implementaciones disponibles.
Aquí hay una buena de Stephen Cleary . Esto proporciona operaciones O (1) para indexar y también para insertar al principio y adjuntar al final.
El C # equivalente a Vector es List<T>
. El acceso indexado es O (1), pero la inserción o eliminación es O (N) (aparte de Insertar al final, que es O (1)).
Para un vector
C #, un buen candidato es System.Collection.Generic.List
como otros mencionados.
El más cercano al deque en C ++ sería System.Collection.Generic.LinkedList
que es una lista doblemente enlazada.