Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Вопрос по TMemo и сортировке вектора списков. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ "Теория вероятности Шейтона" и "Кодирование/дикодирование информации" (C++) http://www.cyberforum.ru/cpp-beginners/thread346977.html
Всем здравструйте! :) Есть две задачки: "Теория вероятности Шейтона" и "Кодирование/декодирование информации". Код первой: Задание первой: 1. Составить программу на языке C/С++ наличия букв...
C++ fstream помогите, пожалуйста, чет я совсем запуталась((( /*Дан текстовый фал, содержащий целые числа, разделенные пробелами. Определить является ли последовательность чисел, находящихся в файле,... http://www.cyberforum.ru/cpp-beginners/thread346972.html
C++ Редактирование dll
Здравствуйте. Если честно не знаю в какой раздел обратиться. Решил к вам. Для одной из программ (ГИС Панорама) можно устанавливать дополнительные приложения, запускаемые внутренними средствами...
ошибки компиляции C++
недавно создавал тему но никто не помог(поиск юзал не помогло) когда я компилирую пример из boost (самый первый) вот такие ошибки E:\boost_1_47_0/boost/system/error_code.hpp:214: undefined...
C++ Множественное наследование http://www.cyberforum.ru/cpp-beginners/thread346897.html
В спортивных соревнованиях различных видов спорта приняли участие люди из разных стран. Название страны имеют следующую структуру country = {имя, телефонный код, почтовый индекс}. Каждый участник...
C++ распределенные системы Здравствуйте, не знала в каком разделе задать эту тему. Вопросы не относятся к языку С++. Это общие вопросы по поводу распределенной системы. Помогите кто как сможет: 1) Мультипроцессор – это... подробнее

Показать сообщение отдельно
Red Planet
49 / 10 / 2
Регистрация: 20.09.2009
Сообщений: 263

Вопрос по TMemo и сортировке вектора списков. - C++

31.08.2011, 18:49. Просмотров 377. Ответов 4
Метки (Все метки)

Здравствуйте!
  1. Есть вектор списков, нужно отсортировать по возрастанию первого элемента каждого списка вектора. Вот пример.
    C++
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    
    vector< list<int> > mVl (3, list<int>());
      mVl[0].push_back(20);
      mVl[0].push_back(7);
      mVl[0].push_back(17);
     
      mVl[1].push_back(1);
      mVl[1].push_back(12);
      mVl[1].push_back(34);
     
      mVl[2].push_back(13);
      mVl[2].push_back(12);
      mVl[2].push_back(34);
     
      for (int i = 0; i < mVl.size(); i++) {
        for (list<int>::iterator it = mVl[i].begin(); it != mVl[i].end(); ++it) {
          cout << *it << " ";
        }
      cout << endl;
      }
     
      for (int i = 1; i < mVl.size(); i++) {
        sort(mVl.begin(), mVl.end());
      }
     
        cout << endl;
     
      for (int i = 0; i < mVl.size(); i++) {
      for (list<int>::iterator it = mVl[i].begin(); it != mVl[i].end(); ++it) {
        cout << *it << " ";
      }
      cout << endl;
      }
    Сначала были списки (20, 7, 17), (1, 12, 34), (13, 12, 34).
    После сортировки (1, 12, 34), (13, 12, 34), (20, 7, 17).

    То есть стандартная сортировка работает здесь без дополнительного параметра. А если будет задача отсортировать по возрастанию второго, то как здесь сделать? Пробовал писать
    C++
    1
    2
    3
    
    bool mSort(int left, int right) {
      return left < right;
    }
    и применять
    C++
    1
    2
    3
    
    for (int i = 1; i < mVl.size(); i++) {
      sort(mVl.begin(), mVl.end(), mSort(mVl[i-1].front(), mVl[i].front()));
    }
    Не работает, говорит об ошибке "Call of non-function" и высылаем в algorithm на строки
    C++
    1
    2
    3
    4
    
    while (_First < _Pfirst
      && !_DEBUG_LT_PRED(_Pred, *(_Pfirst - 1), *_Pfirst)
      && !_Pred(*_Pfirst, *(_Pfirst - 1)))
      --_Pfirst;
  2. В поле Memo баг такой что-ли, что нельзя писать
    C++
    1
    
    MyMemo->Lines->Add("\n\n\n")
    И сколько угодно еще можно написать символов "\n", но переход будет только на одну строку. В это же время
    C++
    1
    2
    
    MyMemo->Lines->Add("\n");
    MyMemo->Lines->Add("\n");
    работает.

    А
    C++
    1
    
    MyMemo->Text = "\nLorem ipsum\ndolor sit amet..."
    вообще игнорирует переходы.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru