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

Сортировка массива объектов, созданных с помощью класса - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Cкобочки http://www.cyberforum.ru/cpp-beginners/thread383236.html
Ребят, помогите пожалуйста сделать задачку на динамику. Некоторые сделала, а эта не получается( Спасибо, тем кто откликнется огромное! Найти стоимость самой дешевой правильной скобочной последовательности длины n. Стоимость последовательности определяется как сумма значений для каждой позиции от 1 до n. Если в i-ой позиции стоит открывающая скобка, то соответствующая стоимость равна O, а если...
C++ Сортировка массива с помощью двух функций Всем добрый вечер. Нужно написать программу, которая бы сортировала динамический массив, с помощью ДВУХ функций(main,sortirovka). Заранее благодарен. http://www.cyberforum.ru/cpp-beginners/thread383234.html
НЕ могу понять классы C++
Помогите реализовать с коментарии: "Разработайте и реализуйте класс Name_pa±rs, содержащий пару (имя,возраст), где имя— объект класса string, а возраст— переменная типа double. Представьте эти члены класса в виде объектов классов vector<string> (с именем name) и vector<double> (с именем age). Предусмотрите операцию ввода read_names(), считывающую ряд имен. Предусмотрите операцию read__ages О,...
Проверка, одного знака или разных C++
Всем привет! Такой вопрос: есть 1 функция и 2 точки. Надо проверить, одинаковые ли значения принимает эта функция в этих точках. Я понимаю, что можно просто перемножить значения ... а как это реализовать с помощью логических операторов - т.е. чтобы было попроще и побыстрее (для компилятора)? Спасибо.
C++ getchar () http://www.cyberforum.ru/cpp-beginners/thread383222.html
a = getchar (); if ( a == 'q' ) // действие 1 a = getchar (); if ( a == 'w' ) // действие 2 Почему не работает такая конструкция? Конечно легко обходится так: a = getchar (); if ( a == 'q' ) // действие 1 else if ( a == 'w' ) // действие 2 Но хочу суть понять...
C++ [C++] Вопрос про ввод #include <iostream.h> #include <stdio.h> void main() { char adress; char text; //FILE * fo; подробнее

Показать сообщение отдельно
Сыроежка
Заблокирован
13.11.2011, 21:37     Сортировка массива объектов, созданных с помощью класса
Цитата Сообщение от One_X Посмотреть сообщение
Ниже приведен мой код программы описывающий "телефонный справочник", в котором каждый объект описан с помощью класса. Нужно дополнить программу: 1) Чтобы объекты Note myNote[k]; были упорядоченны по трем первым цифрам номера телефона; 2) Вывод информации о человеке, чья фамилия введена с клавиатуры (соответственно с помощью функции void Show())

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
#include <iostream>
#include <locale.h>
#include <conio.h>
using namespace std;
 
class Note
{
    char *name; // имя
    char *surname; // фамилия
    int data[3]; // дата рождения
    int number; // номер телефона
 
    public:
 
    Note(int n=20) // Конструктор
        {
        // Выделение памяти:
        name=new char[n];
        surname=new char[n];
        // Ввод данных:
        cout<<" Имя: "; cin>>name;
        cout<<" Фамилия: "; cin>>surname;
        cout<<" Дата рождения: ";
        for (int j=0; j<3; j++)
            cin>>data[j]; // Вводим дату через пробел
        cout<<" Номер: "; cin>>number;
        cout<<endl;
        }
    void Show() // Вывод информации на экран
        {
        cout<<" Имя: "<<name<<endl;
        cout<<" Фамилия: "<<surname<<endl;
        cout<<" Дата рождения: ";
        for (int j=0; j<3; j++)
            {
            cout<<data[j];
            if(j<2)cout<<"."; // разделитель даты
            }
        cout<<endl<<" Номер: "<<number<<endl;
        }
    ~Note() // Деструктор
        {
        // Освобождение выделенной памяти:
        delete []name;
        delete []surname;
        }
};
 
int main()
{   
    setlocale(LC_ALL,"Russian"); // Руссификация
    
    int const k=3;
    Note myNote[k];
    
    _getch();
    return 0;
}
Чтобы отсортировать массив, нужно вызвать стандартный алгоритм std::sort. Чтобы он сортировал ваш массив по трем первым цифрам номера, вам нужно 1) либо перегрузить оператор < для вашего лкасса, то есть написать оператор-функцию operator >, 2) либо создать функциональный объект, который будет осуществлять сравнении элементов вашего массива по заданному критерию, и вызывать алгоритм std::sort, который имеет форму с функционалом.
 
Текущее время: 17:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru