|
10 / 9 / 1
Регистрация: 25.12.2019
Сообщений: 335
|
||||||
Зачем нужны перечисления в С++?19.02.2020, 17:08. Показов 5794. Ответов 56
Метки нет (Все метки)
int main(братья)
Снова зову коллективный разум! Дошел в книжке до перечислений и не пойму зачем они вообще нужны, когда есть массивы и структуры (ну может еще что-то о чем я пока не подозреваю) Вот код из книги который я немного переделал и результат получил тот же:
Да, я только учусь и много где могу быть не прав, это новая предметная область для меня! В книгах все это обясняется, но до меня не доходит практическое применение Здесь на форуме тоже читал темы, не могу понять зачем они, в чем их преимущество...
0
|
||||||
| 19.02.2020, 17:08 | |
|
Ответы с готовыми решениями:
56
Зачем биты нужны это меньше байтов но int 32 бита но я не допер зачем это нужно это 4 байта то есть int не может больше 4 байт весить?
|
|
859 / 448 / 112
Регистрация: 06.07.2013
Сообщений: 1,491
|
||||||||||||||||
| 19.02.2020, 17:18 | ||||||||||||||||
Сообщение было отмечено R_U_S_V как решение
Решение
ну смотри, без них бы ты писал что то вроде
автоматическая генерация уникальных айдишников или описаний для характеристик объекта: добавляя в enum элемент ты не паришься о его нумерации, ты знаешь точно что все что в enum - уникально, если конечно сам не перезаписал значение.
группирование и именование типа констант вместе по каким либо критериям удобнее использовать COLOR color; чем непонятный int.
1
|
||||||||||||||||
|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
|
| 19.02.2020, 17:23 | |
|
Ну например у вас элемент mon имеет значение 1. Если где то в коде написать 1 то не понятно что это... 1 литр, 1кг или может 1 доллар?
вместо этого можно написать mon, и сразу понятно что речь идёт про первый день недели - понедельник. Используя enum вы сгруппировали все дни недели в одном перечислении что так же удобно для восприятия данных внутри кода. Так же enum имеет возможность ввести тип перечисления. Так, например можно создать тип enum day_of_week {...}. Этому типу будут соответствовать все значения этого перечисления
1
|
|
|
199 / 155 / 45
Регистрация: 11.11.2019
Сообщений: 348
|
|
| 19.02.2020, 17:29 | |
|
Чистой воды символизм, который позволяет уйти от т.н. "магических чисел", сделать код более удобочитаемым и удобопонимаемым.
2
|
|
|
Комп_Оратор)
|
||
| 19.02.2020, 17:51 | ||
|
1
|
||
|
10 / 9 / 1
Регистрация: 25.12.2019
Сообщений: 335
|
|
| 19.02.2020, 17:51 [ТС] | |
|
Спасибо!
Про удобство понял.. То есть получается, что самое существенное отличие перечислений от массмива в том, что мы можем переопределять нумерацию?
0
|
|
|
Just Do It!
|
|||||||
| 19.02.2020, 17:56 | |||||||
|
некоторые штуки в крестах создавались именно для того, чтобы кодер мог пейсать код в 3kk строчек и если его вдруг задавит дорожный каток, то другой прогер мог без затруднений продолжить его дело. Можно ваще выкинуть из крестов все тамошние фичи и пейсать код в машинном виде. Но это будет значит только то, что тот, кто так сделал просто пошёл мимо опушки нискось лесом. иллюстрация одного важного прибамбаса enum:
1
|
|||||||
|
10 / 9 / 1
Регистрация: 25.12.2019
Сообщений: 335
|
||||||
| 19.02.2020, 17:59 [ТС] | ||||||
|
Чето я в этом форуме вообще не понимаю, как писать!
А как тогда можно обратиться к конкретному слову в списке перечисления?
Вот cout << sotrudniki[0];
0
|
||||||
|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
|
| 19.02.2020, 18:02 | |
|
R_U_S_V,
Мы не к слову обращаемся не путайте перечисления и массивы. Напишите cout << mon; и получите 1 в ответ. То есть эти слова нужны не для того что бы делать так: cout << enum[0]. Иначе это был бы массив строк а не enum
1
|
|
|
Комп_Оратор)
|
|||||||
| 19.02.2020, 18:09 | |||||||
![]() /не проверял (но идея - главное) /
1
|
|||||||
|
10 / 9 / 1
Регистрация: 25.12.2019
Сообщений: 335
|
|||||||||||
| 19.02.2020, 18:13 [ТС] | |||||||||||
|
Я просто видимо не способен понять
Вот код который не работает: Тут задача сделать так, чтобы при вводе первой буквы слова, выводилось само слово!
В итоге я все это сделал на массивах, поскольку не пойму эти перечисления
0
|
|||||||||||
|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
||||||||||||
| 19.02.2020, 18:26 | ||||||||||||
|
R_U_S_V,
В решении этой задачи особой пользы от использования перечислений не будет ![]() Вот так можно было решить без массивов и перечислений:
2
|
||||||||||||
|
Комп_Оратор)
|
||||||
| 19.02.2020, 18:28 | ||||||
2
|
||||||
|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
|
| 19.02.2020, 18:30 | |
|
1
|
|
|
10 / 9 / 1
Регистрация: 25.12.2019
Сообщений: 335
|
|
| 19.02.2020, 18:32 [ТС] | |
|
Я забыл упомянуть , что до упаду сидел со структурами, до этого, ... второй раз пытался понять и понял только то, что это "хлебная крошка" , то есть моя переменная приобретает кучу иерархических "родителей" которые усложняют код (по моему дилетантскому мнению) и не более того, что она напрочь меня запутывает откуда берется переменная и во что она перевоплощается! Вот видимо такой я чеоловек((( Мне проще было бы обычными переменными пользоваться ведь в среде они подсвечиваются все сразу!
0
|
|
|
199 / 155 / 45
Регистрация: 11.11.2019
Сообщений: 348
|
||||||
| 19.02.2020, 18:40 | ||||||
|
R_U_S_V, перечисления создают удобства не на уровне времени исполнения, а на уровне написания и понимания кода. Вот еще пример использования, который часто-густо можно встретить при программировании, например, оконных приложений, когда приходится работать с большим количеством всяких атрибутов.
3
|
||||||
|
зомбяк
1585 / 1219 / 345
Регистрация: 14.05.2017
Сообщений: 3,940
|
||
| 19.02.2020, 18:48 | ||
|
2
|
||
|
10 / 9 / 1
Регистрация: 25.12.2019
Сообщений: 335
|
|
| 19.02.2020, 18:51 [ТС] | |
|
IGPIGP
не знаю как тут на форуме ответить с цитатой! поэтому только так! Вы знаете мне вообще не понятно в чем прикол. Мы создаем группу из дней недели - sun, mon, tue, wed, thu, fri, sat Саму группу называем - days_of_week (дни недели) дням недели автоматически присваиваем числовой идентификатор - от нуля и дальше ... Дальше создаем 2 переменные - day1, day2 пользователького типа - days_of_week days_of_week day1, day2; Присваиваем этим переменным идентификаторы от переменных - mon && thu day1 = mon; day2 = thu; то есть теперь day1 = 1 day2 = 4 И производим какую-то арифметику Мне столько человек уже ответило СПАСИБО!!!! я до сих пор не пойму нахрена так усложнять и вводить переменные посредники. Ведь можо оперироватиь и самими - sun, mon, tue, wed, thu, fri, sat они же у меня в перечислении есть, я же вижу что-они кто они... Вообще странно, массивы - понял вопросов зачем нужны нет, функции начал изучать, тоже крутая штука сокращает код, вопросов нет, ту тут же блин вообще засада! Я внимательно изучаю ветку Ваших ответов, надеюсь дойдет!!!!
0
|
|
|
Комп_Оратор)
|
||||||||
| 19.02.2020, 19:05 | ||||||||
1
|
||||||||
|
10 / 9 / 1
Регистрация: 25.12.2019
Сообщений: 335
|
||
| 19.02.2020, 19:12 [ТС] | ||
|
0
|
||
| 19.02.2020, 19:12 | |
|
Помогаю со студенческими работами здесь
20
Зачем нужны классы?
Зачем нужны классы? Зачем нужны итераторы?
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод
Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод.
Thinkpad X220 Tablet —. . .
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|