С Новым годом! Форум программистов, компьютерный форум, киберфорум
C++/CLI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/15: Рейтинг темы: голосов - 15, средняя оценка - 4.60
17 / 17 / 4
Регистрация: 18.05.2011
Сообщений: 83

Сортировка Generic::List<T>

16.07.2012, 11:34. Показов 3174. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!
Не мог бы кто подсказать, как использовать штатное средство сортировки данной коллекции именно на C++ CLI? Как реализовать сортировку данного списка на C# найти не трудно, а вот на С++ я так и не смог.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
16.07.2012, 11:34
Ответы с готовыми решениями:

Сравнить два промежутка в System::Collections::Generic::List
Такое условие: if (a-&gt;GetRange(i, len) == a-&gt;GetRange(j, len)) - никогда не выполняется, даже когда промежутки равны. Как это...

C++ и .Net Framework. Структура как тип у Generic::List
Пишу на С++ для .Net Framework. Пытаюсь создать динамический массив структур при помощи System::Collections::Generic::List Среда...

Какой класс выбрать из пространства имён System.Collections.Generic?
1.Необходимо хранить 4 переменных: Фамилию,Имя,Номер,Адрес. 2.Сортировать по : Фамилии,Имени. 3.Предусмотреть возможность...

2
Каратель
Эксперт С++
6610 / 4029 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
16.07.2012, 11:37
Цитата Сообщение от Eliador Посмотреть сообщение
Как реализовать сортировку данного списка на C# найти не трудно, а вот на С++ я так и не смог.
смеёшься да?
http://msdn.microsoft.com/en-u... .aspx#Y700
0
17 / 17 / 4
Регистрация: 18.05.2011
Сообщений: 83
17.07.2012, 07:03  [ТС]
Лучший ответ Сообщение было отмечено Eliador как решение

Решение

Это не много не то, я наверно не до конца раскрыл проблему...
В качестве шаблонной переменной T списка у меня используется произвольный класс, а сортировка нужна по любому полю этого класса. На сколько я понял там этот самый класс должен наследовать от IComparer<MyClass^> после чего в нем надо определить метод CompareTo, и делегаты для всех тех полей, по которым должна осуществляться сортировка.
В C# достаточно сделать,на скока я помню, чето вроде:
C#
1
MyList.Sort(delegate(MyClass cls1, MuClass cls2){ return cls1.field1.CompareTo(cls2.field1); });
или просто использовать "=>", чето вроде того:
C#
1
MyList.Sort((cls1, cls2) => cls1.field1.CompareTo(cls2.field1));
А в C++ CLI это не канает, по крайней мере у меня ошибками сыплет.

К этой проблеме я пришел вообще через dataGreedView. Этот лист собственно биндится к нему, но при попытке отсортировать dataGreedView с помощью его метода сортировки он мне говорит, что мол этот датагрид привязан к IBindingList, не поддерживающему сортировку.

Добавлено через 17 часов 23 минуты
Черт! оказывается мне не надо сортировать данные в коллекции List<T> (хотя как это сделать в C++ CLI хотелось бы все-таки знать).

Мне необходимо сортировать только отображение на DataGridView. Т.е. то что визуализируется должно сортироваться, а сами данные, которые биндятся к гриду, нет. Сортировка необходима для удобной навигации по данным, а так же для удобства анализа данных, но сами данные в листе не должны сортироваться, потому-что на них имеются ссылки. Хотя, если коллекция List<T> является связным списком, тогда при сортировке по идее адрес расположения самих данных не меняется, а меняются только ссылки на следующий и предыдущий элементы списка, однако на сколько я знаю эта коллекция является "надежным массивом" (вектор), а сортировка такой структуры данных однозначно приведет к перестановке данных, что для меня не допустимо.

Возможно ли реализовать сортировку только отображения DataGridView?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.07.2012, 07:03
Помогаю со студенческими работами здесь

Использование System::Collections::Generic::List - не могу создать управляемый лист моего класса
Никак не могу создать управляемый лист моего класса, все время говорит мол only static data members can be initialized inside a ref class...

Неверное преобразование Control в Generic.List<string>
Код: (Controls as List&lt;string&gt;).Add(); Выдает ошибку:

Как из ArrayList получить System.Collections.Generic.List
Есть следующая переменная: System.Collections.ArrayList arrayList; которая содержит элементы типа elemType (Type elemType = какой-то...

Создать List<U>, используя переменную typeof(U) в качестве generic-аргумента
Здравствуйте! Столкнулся с проблемой. Допустим, есть у меня переменная type которая содержит в себе тип var type = typeof(U); Мне...

Почему System.Collections.Generic.List`1[HomeCorntrol.Models.Home] ?
Почему дает ошибку -- Элемент модели, переданный в словарь, имеет тип &quot;System.Data.Entity.DbSet`1&quot;, но для этого словаря требуется...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru