![]() |
|
|
![]()
|
|
| alextih1992 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 23.12.2010 Репутация: нет Всего: нет |
Добрый Вечер!
Если нетрудно, помогите решить следующую проблему: Имею картотеку, одна запись - структура из 9 полей. Отображаю ее в виртуальном listctrl. По клику по колонке, я должен отсортировать всю картотеку по выбранному полю. Сортировку пишу методом вставки таким образом: void CNoteBookView::OnColumnclickList1(NMHDR *pNMHDR, LRESULT *pResult) { LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR); // TODO: добавьте свой код обработчика уведомлений int number_column; number_column = pNMLV ->iSubItem; // далее код собственно сортировки методом вставки int Result = 0; int tempINT; // переменная для чисел CString tempSTRING; // переменная для строк int tempNumb; // переменная для сохранения номера j for (int j = 0; j < Amount; j++) { number_column = 1; tempSTRING = IndexTable[j]->LastName; } tempNumb = j; for (int i = j; i > 0; i--) { Result = IndexTable[i-1]->LastName.Compare(IndexTable[tempNumb]->LastName); } if (Result < 0) { IndexTable[i] = IndexTable[i-1]; IndexTable[i-1] = IndexTable[tempNumb]; } } } MyList.DeleteAllItems(); MyList.SetItemCountEx(Amount); *pResult = 0; } Однако: отображаеься вместо 5 разных отсортированных элементов, 5 раз последний элемент. Пожалуйста, помогите написать правильно работающую функцию! Заранее Спасибо. |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 1 Всего: 250 |
ну для начала пройдитесь по скобкам... одна явно лишняя.. ну и не мешало бы оформить код соответствующими тегами.. |
|||
|
||||
| triclosan |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 515 Регистрация: 18.8.2006 Репутация: 1 Всего: 12 |
определите для структуры operator< и используйте std::sort
|
|||
|
||||
| alextih1992 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 23.12.2010 Репутация: нет Всего: нет |
triclosan,
а можно чуть по подробней? какой operator? |
|||
|
||||
| triclosan |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 515 Регистрация: 18.8.2006 Репутация: 1 Всего: 12 |
если с operator нескладуха - определи "функцию-компаратор"
|
|||
|
||||
| alextih1992 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 23.12.2010 Репутация: нет Всего: нет |
спасибо, попробую!
|
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |