私は現在、データ構造とアルゴリズムのクラスにいる上位レベルのソフトウェア エンジニアリングの学生です。私たちの教授は、C++ STL にある List 構造を使用してプログラムを作成するように求めています。私は C# をますます使用しようとしており、.NET の ArrayList 構造が STL List 実装の適切な代替物であるかどうか疑問に思っていました。
7 に答える
.NET 1.1 にこだわっていない限り、List<T>
代わりに.NET を使用してくださいArrayList
。しかし、あなたは根本的に何を心配していますか?参照するリストがなかったとします。適切なデータ構造が必要なのは何ですか?
この質問には自分で答えられるはずです。STL リストで使用される実装戦略は何ですか? ArrayList のものは何ですか? 同様に、STL リストで提示される抽象 API (提供される操作の観点から) は何ですか? これを STL リストと比較してください: 一方が提供し、他方が提供しないものは何ですか?
STL List がテンプレートを使用している場合は、System.Collections.Generic のジェネリック List クラスを調べることができます。
みんな、ありがとう
quertie、私はタイプミスして、リストではなくリストを意味しました...
割り当ては、std :: listを使用して、単純な構造体のリストを使用して多項式を追加することです。これは、xの係数と累乗を保持する構造体です...十分に簡単ですが、クラスはおそらく言語に依存しないため、 c#を使ってみたかった
ArrayList クラスはやや非推奨です。ジェネリックスがまだ存在していなかった .NET 1.0 の時代からです。
代わりに System.Collections.Generic.List を使用する必要があります。このような:
List<int> myList = new List<int>();
myList.Add(1);
myList.Add(2);
System.Console.WriteLine(myList[0]);
そして、はい、どちらも優れた代替品です。ただし、一般的な List を使用する必要があります。これは、タイプ セーフであり、より高速である可能性があるためです。
ええと、C++ STL には "List" という構造体がありません。リンクされたリストである「リスト」があると思います。対照的に、C# の List は C++ の vector に似ています。
std::list に最も近い C# 版は System.Collections.List です。どちらもジェネリック コレクションであり、標準のリスト型アクションを実装します。