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

Каков синтаксис оператора <?( меньше ) - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ случайные числа http://www.cyberforum.ru/cpp-beginners/thread623509.html
rand() в VS имеет диапазон от 0 до 32768? даже изменение RAND_MAX ничего не повысит верхний уровень?
C++ Разный доступ к элементам структуры через указатель Всем добрый вечер! Есть структура и два указателя на структуру. Первый указатель выделяет память для единичного значения а второй для массива. И вот в чем вопрос. Почему для обращения к элементам структуры в первом случае используется операция ->(стрелка) а во втором .(точка)? struct candyBar { char name; double weight; int kaloriya; }; http://www.cyberforum.ru/cpp-beginners/thread623504.html
Буфер обмена и jpeg C++
Подскажите, пожалуйста, как в Win32 C++ получить из буфера обмена HBITMAP и сохранить его как jpeg файл со сжатием
C++ Составить программу, для вычисления значений функции
Составить программу, для вычисления значений функции у=(х2-2х+5)(х-3) при изменении аргумента х еще -8 до +6 с шагом 0.01.
C++ Открытие соединенных com портов http://www.cyberforum.ru/cpp-beginners/thread623484.html
Скажите пожалуйста, если на одном компьютере соединены 2 com порта между собой и один из них уже используется программой для принятия данных, помешает ли этот факт второй программе открыть незанятый com порт для передачи данных? Просто у меня порт почему то не смог открыться для передачи.
C++ Определить средний балл по каждому предмету В сессию m студентов одной группы сдали 5 экзаменов. Результаты сессии представлены в виде матрицы N (m 5). Определить средний балл по каждому предмету. подробнее

Показать сообщение отдельно
Buckstabue
 Аватар для Buckstabue
175 / 124 / 6
Регистрация: 12.01.2012
Сообщений: 624
13.07.2012, 21:39     Каков синтаксис оператора <?( меньше )
Надо было написать программу, считывающую количество слов, которые пользователь хочет ввести, затем программа считывает каждое слово и потом выводит 3 наиболее часто встречающихся слов.
Я решил немного упростить сортировку, применив алгоритм std::sort(). Вот теперь такая проблема: сортировка почему-то происходит по убыванию. Почему так? Для проверки программы достаточно ввести 5, затем a,a,a,b,b. И вы увидите, что вначале выводится элемент с меньшим значением
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
#include <ostream>
 
#include <clocale>
 
using namespace std;
 
struct Task
{
      string name;
      int kol;
      Task( string name )
      {
         this->name = name;
         this->kol = 1;
      }
      bool operator==( const string &str ) const
      {
         return str == name;
      }
};
 
ostream & operator<<( ostream &out, const Task &x )
{
   return out << x.name << " " << x.kol << endl;
}
 
bool operator<( const Task &x1, const Task &x2 ) // вот эту функцию вызывает сортировка
{
   return x1.kol < x2.kol;
}
 
 
typedef vector<Task> TaskVector;
 
int main()
{
   setlocale( LC_ALL, NULL );
   int N;
   string curTaskName;
   TaskVector tasks;
 
   TaskVector::iterator taskIt;
 
   cout << "Введите количество слов: ";
   cin >> N;
   cin.ignore();
   for ( int i = 0; i < N; ++i )
   {
      cout << "Слово " << (i + 1) << ": ";
      getline( cin, curTaskName );
      taskIt = find( tasks.begin(), tasks.end(), curTaskName );
      if ( taskIt == tasks.end() )
         tasks.push_back( Task(curTaskName) );
      else
         ++(taskIt->kol);
   }
 
   sort( tasks.begin(), tasks.end() ); // сортировка здесь
 
   cout << "Результат:" << endl;
   if ( tasks.size() < 3 )
   {
      for( int i = 0; i < tasks.size(); ++i )
         cout << tasks[i];
   }
   else
   {
      for ( int i = 0; i < 3; ++i )
         cout << tasks[i];
      for ( int i = 3; i < tasks.size() && tasks[i].kol == tasks[2].kol; ++i )
         cout << tasks[i];
   }
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 17:00. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru