Использование списков в C # - PullRequest
3 голосов
/ 07 ноября 2008

Я учусь на высшем уровне по разработке программного обеспечения в настоящее время в классе структур данных и алгоритмов. Наш профессор хочет, чтобы мы написали программу, используя структуру List, найденную в C ++ STL. Я пытался использовать C # все больше и больше, и мне было интересно, является ли структура ArrayList в .NET хорошей заменой реализации списка STL.

Ответы [ 7 ]

5 голосов
/ 07 ноября 2008

Если вы не застряли с .NET 1.1, используйте List<T> вместо ArrayList. Но что вас в основном беспокоит? Предположим, у вас нет Списка, на который можно сослаться - для чего вам нужна соответствующая структура данных?

3 голосов
/ 07 ноября 2008

Вы должны быть в состоянии ответить на этот вопрос самостоятельно. Какая стратегия реализации используется в списках STL? Что такое ArrayList? Аналогично, что такое абстрактный API, представленный списком STL (с точки зрения предоставленных операций)? Сравните это со списком STL: что один дает, а другой нет?

1 голос
/ 07 ноября 2008

, если в списке STL используются шаблоны, вы можете посмотреть общий класс List в System.Collections.Generic.

0 голосов
/ 07 ноября 2008

Спасибо всем

quertie, я неправильно набрал и имел ввиду список вместо List ...

назначение состоит в том, чтобы использовать std :: list для добавления полиномов, используя список простых структур, структуру, которая будет содержать коэффициент и степень x ... достаточно легко, я знаю, но поскольку класс предположительно является -не зависит, я хотел попробовать использовать c #

0 голосов
/ 07 ноября 2008

Ближайший аналог C # списка std :: list - System.Collections.List. Оба являются общими коллекциями и реализуют стандартные действия типа списка.

0 голосов
/ 07 ноября 2008

Хм, C ++ STL не имеет структуры под названием «Список». Я думаю, что есть «список», который является связанным списком. Список C #, напротив, аналогичен вектору C ++.

0 голосов
/ 07 ноября 2008

Класс 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]);

И да, оба они являются хорошими заменителями. Вы должны использовать общий список, так как он безопасен и потенциально быстрее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...