Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 2 июля!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

ПРОГРАММИРОВАНИЕ НА C и С++



Слушай, дружище, зачем так мучиться с этим языком С++, ты ведь не Билл Гейтс. Возьми тот же Python и программируй, он кроссплатформенный, под Windows тоже работает. Я сам давно заметил: то что на Си пишешь в страницу кода, на питоне решается в одну-две строки. При том, питон намного проще, я его сам недавно изучил по видеокурсу вот этому. Кстати, автор отлично там объясняет. Буквально день-два и уже будешь писать на нём, чего не скажешь про сложный С++.

Как отсортировать CStringArray в MFC

Ниже приведён код, который сортирует объект CStringArray. Функция main() конструирует объект CStringArray, добавляет в него элементы, распечатывает элементы, вызывает функцию-член sort() для сортировки, а затем распечатывает отсортированные элементы. Функция sort() использует алгоритм сортировки Пузырьком, а затем вызывает функцию CompareAndSwap() для сравнения каждой строки и меняет их местами если необходимо.

Пример кода

/*
  * Требуемые опции компилятора: /MT
  */
 
 #include <afx.h>
 #include <iostream.h>
 #include <afxcoll.h>
 
 class CSortStringArray : public CStringArray {
 public:
    void Sort();
 private:
    BOOL CompareAndSwap(int pos);
 };
 void CSortStringArray::Sort()
 {
    BOOL bNotDone = TRUE;
 
    while (bNotDone)
    {
       bNotDone = FALSE;
       for(int pos = 0;pos < GetUpperBound();pos++)
          bNotDone |= CompareAndSwap(pos);
    }
 }
 BOOL CSortStringArray::CompareAndSwap(int pos)
 {
    CString temp;
    int posFirst = pos;
    int posNext = pos + 1;
 
    if (GetAt(posFirst).CompareNoCase(GetAt(posNext)) > 0)
    {
       temp = GetAt(posFirst);
       SetAt(posFirst, GetAt(posNext));
       SetAt(posNext, temp);
       return TRUE;
 
    }
    return FALSE;
 }
 void main()
 {
    CSortStringArray sortArray;
 
    sortArray.Add(CString("Zebra"));
    sortArray.Add(CString("Bat"));
    sortArray.Add(CString("Apple"));
    sortArray.Add(CString("Mango"));
 
    for (int i = 0; i <= sortArray.GetUpperBound(); i++)
       cout << sortArray[i] << endl;
 
    sortArray.Sort();
    cout << endl;
 
    for (int j = 0; j <= sortArray.GetUpperBound(); j++)
       cout << sortArray[j] << endl;
 } 

 

 





<< ВЕРНУТЬСЯ В ПОДРАЗДЕЛ

<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ




Материалы находятся на сайте https://exelab.ru/pro/



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU Проект ReactOS