Понедельник, 25 Ноября 2024, 19:29

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Строковые индексы матрицы
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 (обратно научиться - дело минут). Тогда не будет проблем с пониманием того, что есть "ассоциативный массив", он же (в большинстве случаев) - хэш-таблица.

Может тогда сразу к истокам, к ассемблеру, а то для некоторых уже железо это абстракция biggrin


Мои проекты:
- Свободный и открытый клон 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++.

Очень смешно biggrin


Мои проекты:
- Свободный и открытый клон World Of Goo
- TrueEngine2D (2D игровой фреймворк основанный на FreeBASIC)

[GameMaker: Studio v1.4.9999]
SaiteiДата: Суббота, 19 Декабря 2015, 23:47 | Сообщение # 15
старожил
Сейчас нет на сайте
Цитата OpenGOO ()
Очень смешно

Если о чём-то и спорите - то спорьте более информативно, иначе сообщения не имеют смысла и приравнивается к флуду.
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг