2008-11-06 4 views
3

저는 현재 데이터 구조 및 알고리즘 클래스의 상위 소프트웨어 엔지니어링 학생입니다. 우리 교수는 C++ STL에있는 List 구조를 사용하여 프로그램을 작성하기를 원합니다. 나는 C#을 점점 더 사용하려고 노력해 왔으며 .NET의 ArrayList 구조가 STL List 구현을 대신 할 수 있는지 궁금해하고 있습니다.C#의 목록 사용하기

답변

5

.NET 1.1이 설치된 경우가 아니면 ArrayList 대신 List<T>을 사용하십시오. 하지만 근본적으로 우려하는 것은 무엇입니까? 참조 할 목록이 없다고 가정합니다. 적절한 데이터 구조가 무엇을 필요로합니까?

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]); 

예, 둘 다 좋은 대용품입니다. 유형이 안전하고 잠재적으로 빠르기 때문에 일반 목록을 사용해야합니다.

0

음, C++ STL에는 "List"라는 구조가 없습니다. 나는 "목록"이 있다고 생각합니다. 이것은 링크 된 목록입니다. 반대로 C#의 List는 C++의 벡터와 유사합니다.

+0

예, 잘못 입력 됨, std :: list를 의미 함.

-1

std :: list와 가장 유사한 C# 유사어는 System.Collections.List입니다. 둘 다 generic 콜렉션이며 표준 list-type 조치를 구현합니다.

+0

'std :: list'는 연결된 목록입니다. 그래서 훨씬 더 가까운 컬렉션은'System.Collections.LinkedList ' –

0

덕분에 모두

quertie, 그 것,

할당이 간단한 구조체의 목록을 사용하여 다항식을 추가하는 표준 : : 목록을 사용하는 것입니다 ... 구조체를 잘못 입력하는 대신 목록의 목록을 의미 계수와 x의 힘을 잡아라. ... 충분히 쉽게 알 수 있겠지만 수업은 언어에 독립적이라고 가정하기 때문에 나는 C 언어를 사용하려고했다. #