Domanda

Sono uno studente di ingegneria software di livello superiore attualmente in una classe di strutture di dati e algoritmi. Il nostro professore vuole che scriviamo un programma usando la struttura Elenco trovata nel C ++ STL. Ho cercato di utilizzare C # sempre di più e mi chiedevo se la struttura ArrayList in .NET fosse un buon sostituto dell'implementazione dell'elenco STL.

È stato utile?

Soluzione

A meno che tu non sia bloccato con .NET 1.1, usa List<T> invece di ArrayList. Ma di cosa sei fondamentalmente preoccupato? Supponiamo di non avere un elenco a cui fare riferimento: a cosa serve la struttura dati appropriata?

Altri suggerimenti

Dovresti essere in grado di rispondere a questa domanda da solo. Qual è la strategia di implementazione utilizzata negli elenchi STL? Qual è quello di ArrayList? Allo stesso modo, qual è l'API astratta presentata dall'elenco STL (in termini di operazioni fornite)? Confronta questo con l'elenco STL: cosa prevede l'uno che l'altro no?

se l'elenco STL utilizza modelli, è possibile esaminare la classe Elenco generica in System.Collections.Generic.

Uhm, C ++ STL non ha una struttura chiamata " Elenco " ;. Penso che ci sia un & Quot; list & Quot ;, che è un elenco collegato. La lista di C #, al contrario, è analoga al vettore di C ++.

La classe ArrayList è in qualche modo obsoleta. È da .NET 1.0 volte che i generici non esistevano ancora.

Dovresti invece usare System.Collections.Generic.List. In questo modo:

List<int> myList = new List<int>();
myList.Add(1);
myList.Add(2);
System.Console.WriteLine(myList[0]);

E sì, entrambi sono buoni sostituti. Dovresti usare l'Elenco generico, dato che è sicuro e potenzialmente più veloce.

Grazie a tutti

quertie, ho sbagliato a digitare e intendevo list anziché List ...

il compito è usare std :: list per aggiungere polinomi usando un elenco di semplici strutture, una struttura che potrebbe contenere il coefficiente e la potenza di x ... abbastanza facile, lo so, ma poiché la classe è presumibilmente linguaggio indipendente, volevo provare a usare c #

L'analogo C # più vicino dell'elenco std :: è System.Collections.List. Entrambi sono raccolte generiche e implementano le azioni standard di tipo elenco.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top