| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Стандартные контейнеры |
| Автор: bronislav 29.5.2008, 09:55 |
| Можно ли как-то объявить стандартный контейнер с индексацией, например от -1. Я понимаю, что можно наследовать контейнер, а как-то по другому? |
| Автор: mes 29.5.2008, 10:09 | ||
интересно для чего такое могло понадобится..? скорее всего ищете не в том направлении.. |
| Автор: bronislav 29.5.2008, 10:55 |
Переписываю код с Pascal. и Там в некоторый массивах используется индексация от -1, просто боюсь запутаться. Ну ладно буду пробовать так. Спасибо. |
| Автор: Alek86 29.5.2008, 12:02 |
#define PASCAL_NUMBER(x) ((x)-1) только не злоупотребляй (функции с 2 и более параметров лучше не подсовывать) |
| Автор: mes 29.5.2008, 12:50 | ||
а зачем дефайн , если можно подсунуть функцию ? inline int ТоPascalIndex (int x) { return x-1; } inline int FromPascalIndex (int x) { return x+1; } P.S. хотя насколько я помню по умолчанию в паскале индексы начинаются с 1, a не с -1; P.S.S. но я все таки остаюсь при мнении, что это не решение проблемы, а лишь обходной маневр и если он применяется на одном малом (логически независимом) фрагменте программы и не завязан на остальное тело проги, то решение подойдет, однако если на это будет опираться другие части проги то могут появиться трудноотлавлимые ошибки . также помнить об этой особенности при составлении алгоритма - значит отвлекаться от сути по мелочам |
| Автор: bronislav 29.5.2008, 13:17 | ||||||
Там можно описать массив с какого хочешь индекса и все будет тип том
А как иначе - только обходной маневр. Ибо перегружать стандартный контейнер я не хочу. |
| Автор: mes 29.5.2008, 13:26 | ||
чтоб не перегружать контейнер, можно ИМХО привести индексы к "стандартному" порядку |