|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
17.12.2009, 19:42 | #1 |
Пользователь
Регистрация: 17.12.2009
Сообщений: 14
|
Работа с классом| C++
Здравствуйте!
Я только начинаю осваивать программирование, поэтому пока я, мягко говоря, чайник. Но хочу разобраться. Вопрос заключается в следующем. Вот я создаю класс. Каждый его элемент содржит слово(тип char) и число (int). И в какой-то момент мне нужно вывести все элементы класса в порядке возрастания этого самого числа. Как это сделать? Как перебрать все существующие на данный момент в программе элементы, чтобы сравнить эти числа? Нужно создавать массив? И как программа узнает, сколько уже имеется элементов? Это, собственно, еще не все вопросы, на самом деле их куда больше, но, думаю, нужно все как-то по-порядку... Мне бы, главное, алгоритм уяснить, конкретно, что с чем сравнивается, и какие есть способы... Просто пока я еще мало чего знаю, а страшный синтаксис меня, как новичка, пугает)) Особенно без комментариев))) Вот и пытаюсь все перевести на русский и разобраться. Поможете? |
17.12.2009, 20:33 | #2 | |
Пользователь
Регистрация: 04.12.2009
Сообщений: 63
|
Цитата:
|
|
17.12.2009, 20:58 | #3 |
Пользователь
Регистрация: 17.12.2009
Сообщений: 14
|
О, а так можно? Можно поставить такой счетчик? Обязательно попробую!
Но я имела в виду немного другое... У меня есть класс таких объектов: слово и количество букв в нем. Как определять количество букв, я знаю. И каждый раз в конструкторе вызывается эта функция и подсчитывает количество букв. Этот результат и есть число, которое является вторым полем класса. Дальше я определяю метод сложения двух элементов (при этом два слова соединяются в одно без пробела, а количество букв равно сумме чисел). С этим получилось. А вот с сортировкой не знаю как сделать... Не знаю, как написать условие и сам цикл... |
17.12.2009, 21:09 | #4 |
Пользователь
Регистрация: 04.12.2009
Сообщений: 63
|
Долго втыкал в условие... Тебе нужно вывести строки, хранящиеся в полях объектов по возрастанию?
Если да, то: Добавь в класс поле: Код:
А затем в цикле от 1 до counter сортируешь. Алгоритмов сортировки много в интернете. Рекомендую "быструю сортировку". |
18.12.2009, 00:05 | #5 |
Форумчанин
Регистрация: 13.12.2009
Сообщений: 272
|
Присоединяюсь к пред. посту - счетчик и , возможно, записывание адреса элемента в массив какой- нибудь....это и недорого обойдется, всего по 4 байта на элемент, и вроде читабельно...
Если я помог вам - порадуйте меня, нажмите на весы слева
|
18.12.2009, 00:21 | #6 |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
Никак не могу понять зачем в классе счётчик? Счётчик чего? Вопрос, по-моему, в том, как сортировать массив классов по возрастанию длинны содержащегося в нём слова. Нельзя ли банально "пузырьком" или любым другим методом сортировки отсортировать?
Код:
|
18.12.2009, 00:27 | #7 |
Пользователь
Регистрация: 04.12.2009
Сообщений: 63
|
Ну можно и так)) Просто, первое, что пришло на ум - то и ляпнул.
|
21.12.2009, 11:46 | #8 |
Пользователь
Регистрация: 17.12.2009
Сообщений: 14
|
Спасибо всем! Разобралась с сортировкой, хотя вот когда пытаюсь поставить счетчик в класс, компилятор выдает что-то вроде "в пределах класса могут быть инициализированы только статические константные данные-члены целого типа". Чего ему не нравится, не знаю...
А вариант netrino работает, спасибо. Но это ведь, как я понимаю, массив слов. А если у меня каждое слово по отдельности вводится вроде Код:
А можно сделать какую-нибудь функцию, которая бы узнавала, сколько на данный момент имеется объектов класса? Это было бы бесценно... |
21.12.2009, 12:16 | #9 | |
Форумчанин
Регистрация: 13.12.2009
Сообщений: 272
|
Цитата:
А по теме - вдруг девушке надо посчитать все объекты, созданные и без массива, и не с помощью new, а прост овсе объекты, которые сейчас существуют? ну и соответственно отсортировать...считать их и записывать указатели на них в массив какой-нибудь Считать, естественно, с помощью статистической переменной да и сортировку по идее можно статистической функцией...
Если я помог вам - порадуйте меня, нажмите на весы слева
Последний раз редактировалось RoS; 21.12.2009 в 12:19. |
|
21.12.2009, 13:03 | #10 | |
Пользователь
Регистрация: 17.12.2009
Сообщений: 14
|
Цитата:
Код:
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Программа с классом и объектами!!! | Sudeki | Помощь студентам | 0 | 13.12.2009 15:20 |
Проблема с классом list | Homer_J_Simpson | Общие вопросы C/C++ | 4 | 28.11.2009 22:03 |
Работа с Классом и кое что по OpenGl | Seran4ek | Помощь студентам | 7 | 28.11.2009 21:11 |
Работа с классом TStringStream в Borland C++ | profi | Общие вопросы C/C++ | 2 | 26.07.2009 20:14 |
C++ работа с классом | VadEr | Помощь студентам | 2 | 17.05.2009 12:33 |