Usando listas em C #
Pergunta
Eu sou um nível superior estudante de Engenharia de Software atualmente em uma Estruturas de Dados e Algoritmos classe. Nosso professor nos quer escrever um programa usando a estrutura da lista encontrada no STL C ++. Eu tenho tentado usar C # mais e mais, e queria saber se a estrutura ArrayList em .NET é um bom substituto para a implementação Lista STL.
Solução
A menos que você está preso com .NET 1.1, o uso List<T>
vez de ArrayList
. Mas o que está fundamentalmente em causa cerca de? Suponha que você não tem lista para designar as - o que você precisa a estrutura de dados apropriado para fazer
Outras dicas
Você deve ser capaz de responder a essa pergunta a si mesmo. Qual é a estratégia de implementação usado em listas de STL? O que é a de ArrayList? Da mesma forma, o que é a API resumo apresentado pela lista STL (em termos de operações fornecido)? Compare isto com a lista STL: o que faz a prever que o outro não
Se os modelos de lista STL usos, você pode querer olhar para a classe List genérica em System.Collections.Generic.
Um, STL C ++ não tem uma estrutura chamada "Lista". Acho que há uma "lista", que é uma lista ligada. C # 's List, em contraste, é análogo ao C ++' vector s.
A classe ArrayList é um pouco obsoleto. É a partir do .NET 1.0 vezes quando genéricos não existia ainda.
Você deve usar System.Collections.Generic.List vez. Como esta:
List<int> myList = new List<int>();
myList.Add(1);
myList.Add(2);
System.Console.WriteLine(myList[0]);
E sim, ambos são bons substitutos. Você deve usar a lista de genéricos, porém, uma vez que é tipo seguro e potencialmente mais rápida.
Obrigado a todos
quertie, eu mal digitado e lista em vez de Lista significava ...
a atribuição é usar std :: lista para adicionar polinômios usando uma lista de estruturas simples, uma estrutura que iria realizar o coeficiente eo poder de x ... fácil o suficiente, eu sei, mas desde que a classe é supostamente idioma independente de, eu queria tentar usar c #
O mais próximo C # análogo do std :: lista é System.Collections.List. Ambos são coleções genéricas, e implementar as ações do tipo de lista padrão.