Razum писал(а):
А в васике разве можно копировать так?
Так не в голом же Васике, а в Ехселе! Там просто блок ячеек на листе копируешь, да и сё.
Микс писал(а):
...
Э-э-э... Ну, я лучше просто циклом задам каждый элемент одной матрицы приравнять каждому элементу другой аналогичной матрицы.
Razum писал(а):
Кстати, а что за ошибку-то пишет?
Ошибку на приравнивание матриц одинакового типа и размера (dmapcur = dmap;) пишет такую: "Lvalue required".
Если задать построение на карте "х" главных горных цепей, то приравнивать эти матрицы в процессе построения рельефа нужно будет "2х" раз. В принципе, я придумал способ, как обойтись без этого. Но:
1) код незначительно увеличится;
2) максимальное количество гор главной цепи будет лимитировано (ну, лимит-то мы можем задать какой хотим, но только, как и размеры карты, до компилляции, а во время работы ЕХЕ-шника ничего уже не изменишь
). Но всё равно, копировать "поэлементно" придётся столько элементов, сколько гор в главной цепи, хотя их число уже и не так пугающе, как количество ячеек приравниваемых матриц.
Как лучше поступить?
а) Приравнивать матрицы поэлементно:
"-": элементов в матрицах столько, сколько точек на карте;
"-": размер занятой оперативки для хранения всех матриц равен: ([количество точек высот на карте] * 6) байт;
"+": поэлементное приравнивание матриц просто осуществить;
б) Придумать другой способ, отказавшись от второй матрицы:
"-": придётся установить максимум количества гор главной цепи;
"-": код чуть-чуть усложниться, плюс мне мозгопарьство
;
"+": размер занятой оперативки для хранения всех матриц равен: ([количество точек высот на карте] * 5 + [максимальное количество гор главной цепи] * 4) байт, т.е. это максимум на 17% меньше, чем при варианте с поэлементным копированием огромных матриц;
Я вот как думаю: если на поэлементное копирование матрицы размером 10000х10000 (100*10^6 элементов) проц частотой в 2ГГц (это 2*10^9 операций/сек) затратит менее 1 секунды, то лучше поэлементное копирование. Если больше, то стоит погнаться за ~15% оперативы и парусекундным временем процессора. Как Вы думаете, за сколько времени вышеописанный проц скопирует поэлементно матрицу размером 10000х10000 циклическим методом?