2008-11-06 58 views
3

我是目前在數據結構和算法類中的上級軟件工程學生。我們的教授希望我們使用C++ STL中的List結構編寫程序。我一直試圖越來越多地使用C#,並且想知道.NET中的ArrayList結構是否是STL列表實現的很好的替代品。在C#中使用列表

回答

5

除非您遇到.NET 1.1,否則請使用List<T>而不是ArrayList。但你基本上關心什麼?假設你沒有List來引用 - 你需要什麼合適的數據結構來做?

3

你應該能夠自己回答這個問題。 STL列表中使用的實施策略是什麼? ArrayList是什麼?同樣,STL列表提供的抽象API(根據所提供的操作)是什麼?將此與STL列表進行比較:其中一個提供的是另一個不提供的?

1

如果STL列表使用模板,則可能需要查看System.Collections.Generic中的泛型List類。

0

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,因爲它是類型安全的並且可能更快。

0

Um,C++ STL沒有名爲「List」的結構。我認爲有一個「列表」,這是一個鏈表。相反,C#的列表與C++的向量類似。

+0

是的,錯字,意味着std :: list 2008-11-07 01:17:42

-1

std :: list最接近的C#類似物是System.Collections.List。兩者都是通用集合,並實現標準列表類型的操作。

+0

`std :: list`是一個鏈表。所以一個更接近等效的集合將是`System.Collections.LinkedList ` – 2013-06-09 20:47:42

0

謝謝大家

quertie,我輸錯和意思列表,而不是名單...

的任務是使用std ::列表中添加使用簡單結構的列表多項式,一個struct那會保持係數和x的力量...很容易,我知道,但由於班級被認爲是語言無關的,我想嘗試使用c#