Строковые индексы матрицы
|
|
Ramilyanamana | Дата: Суббота, 19 Декабря 2015, 08:07 | Сообщение # 1 |
Биззи Джей Ужасный
Сейчас нет на сайте
| Появился вопрос, можно ли в C++ создать массив, чтоб у него вместо числовых индексов были буквенные? Как, например, в морском бое или шахматах
Сообщение отредактировал Ramilyanamana - Суббота, 19 Декабря 2015, 08:07 |
|
| |
YellowAfterlife | Дата: Суббота, 19 Декабря 2015, 08:19 | Сообщение # 2 |
Сейчас нет на сайте
| И в морском бое, и в шахматах, одной из координат даются буквенные индексы, чтобы люди не путались в порядке при озвучивании (4,8 или 8,4?). Для такого можно сделать константы. Иначе это называется "ассоциативный массив", и стандартной его реализацией является std::map (урок).
|
|
| |
Ramilyanamana | Дата: Суббота, 19 Декабря 2015, 08:23 | Сообщение # 3 |
Биззи Джей Ужасный
Сейчас нет на сайте
| YellowAfterlife, благодарю)
|
|
| |
Gudleifr | Дата: Суббота, 19 Декабря 2015, 10:15 | Сообщение # 4 |
почти ветеран
Сейчас нет на сайте
| Цитата Ramilyanamana ( ) чтоб у него вместо числовых индексов были буквенные Ну, как бы, "букв не бывает". Каждый символ имеет номер. И для нумерации массивов это можно использовать. Считать номером "расстояние символа от первого".
Код НомерX = 'X' - 'A' БукваX = 'A' + НомерX Еще пара простых трюков - и можно использовать буквы в разных регистрах. С Unicode только надо быть осторожным.
Быдлокодеры любят повторять: "логика, убивающая мозг",- когда их пытаются заставить программировать.
|
|
| |
OpenGOO | Дата: Суббота, 19 Декабря 2015, 12:02 | Сообщение # 5 |
почти ветеран
Сейчас нет на сайте
| Он явно думал об ассоциативном массиве, в с++11 есть еще и хэш-таблица std::unordered_map
Мои проекты: - Свободный и открытый клон World Of Goo - TrueEngine2D (2D игровой фреймворк основанный на FreeBASIC)
[GameMaker: Studio v1.4.9999]
|
|
| |
Gudleifr | Дата: Суббота, 19 Декабря 2015, 12:17 | Сообщение # 6 |
почти ветеран
Сейчас нет на сайте
| OpenGOO, дык, главная задача в обучении программированию - отучение от пользования всего, что начинается с std (обратно научиться - дело минут). Тогда не будет проблем с пониманием того, что есть "ассоциативный массив", он же (в большинстве случаев) - хэш-таблица.
Быдлокодеры любят повторять: "логика, убивающая мозг",- когда их пытаются заставить программировать.
|
|
| |
FlyOfFly | Дата: Суббота, 19 Декабря 2015, 13:30 | Сообщение # 7 |
заслуженный участник
Сейчас нет на сайте
| Цитата Gudleifr ( ) дык, главная задача в обучении программированию - отучение от пользования всего, что начинается с std (обратно научиться - дело минут). Тогда не будет проблем с пониманием того, что есть "ассоциативный массив", он же (в большинстве случаев) - хэш-таблица. Найдешь хоть один учебник по C++, где есть printf, получишь плюс )
|
|
| |
Gudleifr | Дата: Суббота, 19 Декабря 2015, 14:06 | Сообщение # 8 |
почти ветеран
Сейчас нет на сайте
| FlyOfFly, например, все первые Страуструпы. Но суть Вы уловили правильно: printf не являются частью языка не C, ни C++. Эти библиотеки принадлежат операционной системе Unix (позднее, его "эмуляторам").
Быдлокодеры любят повторять: "логика, убивающая мозг",- когда их пытаются заставить программировать.
|
|
| |
FlyOfFly | Дата: Суббота, 19 Декабря 2015, 14:21 | Сообщение # 9 |
заслуженный участник
Сейчас нет на сайте
| Цитата Gudleifr ( ) FlyOfFly, например, все первые Страуструпы. Но суть Вы уловили правильно: printf не являются частью языка не C, ни C++. Эти библиотеки принадлежат операционной системе Unix (позднее, его "эмуляторам"). хмм, окей посмотрю, ну все книги которые я читал были именно про std::cout
|
|
| |
OpenGOO | Дата: Суббота, 19 Декабря 2015, 15:24 | Сообщение # 10 |
почти ветеран
Сейчас нет на сайте
| Цитата Gudleifr ( ) OpenGOO, дык, главная задача в обучении программированию - отучение от пользования всего, что начинается с std (обратно научиться - дело минут). Тогда не будет проблем с пониманием того, что есть "ассоциативный массив", он же (в большинстве случаев) - хэш-таблица. Может тогда сразу к истокам, к ассемблеру, а то для некоторых уже железо это абстракция
Мои проекты: - Свободный и открытый клон World Of Goo - TrueEngine2D (2D игровой фреймворк основанный на FreeBASIC)
[GameMaker: Studio v1.4.9999]
|
|
| |
Gudleifr | Дата: Суббота, 19 Декабря 2015, 15:55 | Сообщение # 11 |
почти ветеран
Сейчас нет на сайте
| OpenGOO, заканчивайте флуд. Язык ассемблера такой же язык, как и С или C++ ... И ОС-библиотеки цепляются к нему совершенно аналогично.
Цитата OpenGOO ( ) а то для некоторых уже железо это абстракция Только для тех, кто считает, что std - это часть C++.
Если уж вернуться к теме, то можно видеть, что и работа с символами, и те же хэш-таблицы прекрасно иллюстрированы во многих "ассемблерных" учебниках. Для этих вещей совершенно не требуется "поддержка самого передового обезьянника".
Быдлокодеры любят повторять: "логика, убивающая мозг",- когда их пытаются заставить программировать.
Сообщение отредактировал Gudleifr - Суббота, 19 Декабря 2015, 15:55 |
|
| |
Ramilyanamana | Дата: Суббота, 19 Декабря 2015, 20:25 | Сообщение # 12 |
Биззи Джей Ужасный
Сейчас нет на сайте
| Цитата Gudleifr ( ) "расстояние символа от первого" я думал над этим. посмотрю, как лучше будет. пока не узнал про map, это казалось единственным хорошим вариантом
|
|
| |
Vesterix | Дата: Суббота, 19 Декабря 2015, 22:23 | Сообщение # 13 |
частый гость
Сейчас нет на сайте
| Помоему метод предложенный Gudleifr самый оптимальный, если так уже надо именно строковые индексы. Можно даже написать свой клас, перегрузить операцию [], чтобы постоянно не прибавлять 'A'.
|
|
| |
OpenGOO | Дата: Суббота, 19 Декабря 2015, 23:17 | Сообщение # 14 |
почти ветеран
Сейчас нет на сайте
| Цитата Gudleifr ( ) Только для тех, кто считает, что std - это часть C++. Очень смешно
Мои проекты: - Свободный и открытый клон World Of Goo - TrueEngine2D (2D игровой фреймворк основанный на FreeBASIC)
[GameMaker: Studio v1.4.9999]
|
|
| |
Saitei | Дата: Суббота, 19 Декабря 2015, 23:47 | Сообщение # 15 |
старожил
Сейчас нет на сайте
| Цитата OpenGOO ( ) Очень смешно Если о чём-то и спорите - то спорьте более информативно, иначе сообщения не имеют смысла и приравнивается к флуду.
|
|
| |