30.10.2008, 14:54 | #1 |
Участник
|
двумерный динамический массив
Добрый день, уважаемые посетители форума
Подскажите, пожалуйста, какими способами можно реализовать двумерный динамический массив на X++.
__________________
AX 3.0, Build #9.3 |
|
30.10.2008, 15:13 | #2 |
Участник
|
Посмотрите в любую книгу по программированию на Х++, везде приводятся примеры.
Если кратко - представить двумерный массив через одномерный с помощью игр с индексами. Многие написали, думаю, обертки для этог - обычный класс. Может кто выложит сюда |
|
30.10.2008, 15:14 | #3 |
Moderator
|
Книга Еременко, Шашкова - стр.76
|
|
30.10.2008, 15:14 | #4 |
Участник
|
|
|
30.10.2008, 15:17 | #5 |
MCITP
|
Я так понимаю ключевое слово в этом вопросе было "динамический"
__________________
Zhirenkov Vitaly |
|
30.10.2008, 15:18 | #6 |
Участник
|
Class Array
|
|
30.10.2008, 15:18 | #7 |
Участник
|
Встроенный массив а Аксапте - динамический, его размер можно не указывать при его определении и он может меняться во время выполнения. По-моему, это и есть определение динамического массива
|
|
30.10.2008, 15:23 | #8 |
MCITP
|
Цитата:
chanchala Вы это имели ввиду в вопросе?
__________________
Zhirenkov Vitaly |
|
30.10.2008, 15:25 | #9 |
MCITP
|
Ну т.е. понятно что как вариант можно взять с большим запасом, если ресурсов не жалко, но вряд ли это выход
__________________
Zhirenkov Vitaly |
|
30.10.2008, 15:27 | #10 |
Участник
|
Ага, спасибочки. Если правильно поняла: "Чтобы было удобно, написать свой класс"
__________________
AX 3.0, Build #9.3 |
|
30.10.2008, 15:34 | #12 |
Участник
|
Цитата:
Сообщение от ZVV
НУ может я что-то недопонял, но если вы определяете массив как пишется в книжках и обращаетесь arr[y*N+x+1] (как в примере выше), то у вас уже забито, что размерность массива N*M. Если вы вдруг заходите чтоб этот массив стал (N+2)*(M+4), то вам придётся перестраивать весь массив. Или я не прав?
chanchala Вы это имели ввиду в вопросе?
__________________
AX 3.0, Build #9.3 |
|
30.10.2008, 15:38 | #13 |
MCITP
|
Цитата:
Можете почерпнуть многое оттуда....
__________________
Zhirenkov Vitaly |
|
30.10.2008, 15:40 | #14 |
MCITP
|
Цитата:
если как вы говорите Цитата:
но и могут меняться уже после того, как станут известны с последующим удалением соответствующих "строк" и "столбцов".
Проблемы то возникнут только при добавлении, причём именно столбцов.
__________________
Zhirenkov Vitaly |
|
31.10.2008, 17:07 | #15 |
Участник
|
Цитата:
|
|
31.10.2008, 17:18 | #16 |
MCITP
|
Цитата:
Если строки или столбцы будут удаляться только с конца, то проблем вообще никаких. Если же, как в вашем варианте, из середины, тогда некоторые проблемы конечно будут, а именно придётся как-то дополнительно хранить "живые" индексы (ну или "неживые"). Но это тоже несложно реализуемый технический вопрос. Вот что я имел ввиду...
__________________
Zhirenkov Vitaly |
|
31.10.2008, 17:20 | #17 |
MCITP
|
т.е. в формуле
Цитата:
arr[y*N+x+1]
__________________
Zhirenkov Vitaly |
|
31.10.2008, 17:29 | #18 |
Moderator
|
С такими матричными задачками - надо в Excel, в клеточки! Ну или в Spreadsheet. И там удаляй - не хочу, добавляй - не хочу, транспонируй как хочется. Подумать не успеешь - как всё само перестроится.
|
|
31.10.2008, 17:42 | #19 |
MCITP
|
Цитата:
стоит явное ограничение. ))
__________________
Zhirenkov Vitaly |
|
31.10.2008, 17:58 | #20 |
Участник
|
Цитата:
X++: Map m = new Map(Types::Container, Types::Anytype) ; m.insert([i,j], _value)
__________________
aLL woRk aNd nO JoY MAKes jAck a dULL Boy |
|
|
За это сообщение автора поблагодарили: Gustav (2). |
Теги |
array, массив |
|
|