Ксения (08.10.2005 17:16, просмотров: 1) ответил Николай Коровин на Что-то у меня День Тупицы :) Вопрос к наCльникам:
Все правильно, косяка нет > обращение к произвольному элементу произвольной строки:
> (a[Y])[X]=значение столбца/строки X x Y;
Более того! Ставить эти скобки необязательно. Т.к. a[Y][X] - есть совершенно нормальное обращение к элементу матрицы, построенной таким способом.
Формально, обращение к матрице, постороенной как дерево, выглядит ровно так же, как и обращение к матрице объявленной целым куском, но компилятор разницу понимает и код генерит соответствующий случаю.
Время обращения к элементам "динамической матрицы" примерно того же порядка, как и к "цельнокройной". - Разъименовывание лишнего указателя на большинстве процессоров протекает не дольше, чем умножение номера столбца на длину строки "цельнолитой" матрицы.
Более того, если у МК аппаратно не реализована операция умножения, то "древовидный" метод построения матрицы даже предпочтительнее, т.к. умножать там на числа, отличные от степени двойки, не придется.