Re[4]: Многомерные массивы динамически
От: av Россия  
Дата: 02.09.01 13:55
Оценка: 21 (3)
Вообще-то * в скобках объясняется тем, что в C любые скобки (круглые или квадратные) имеют приоритет над звездой. Так что, если требуется, чтобы перемнная была указателем на массив, требуется написать именно так. Общий алгоритм разбора сложных типов такой: (из MSDN)

1. Начинаем с переменной.
2. Смотрим в пределах скобок направо:
а) Если там есть круглые скобки, то это функция. Все, что в этих скобках, интерпритируется как параметры этой функции.
б) Если там есть квадратные скобки, то это массив. В скобках должно стоять целое положительное число, которое рассматривается как количество элементов массива.
3. Теперь посмотрим налево. Если там есть звездочка, то это указатель.
4. Выбираемся из скобок на скобки более низкого уровня вложенности и повторяем шаги 2-3.
5. Так мы делаем, пока не доберемся до определения типа.

Пример:
char *(*(*a)(void))[10];
^ ^ ^ ^^ ^ ^
7 6 4 21 3 5

Итак, по порядку.

1. a определяется как...
2. ...указатель на...
3. ...функцию, не принимающую параметров и возвращающую...
4. ...указатель на...
5. ...массив из 10...
6. ...указателей на...
7. ...char.
Re: Многомерные массивы динамически
От: ZORK Россия www.zorkaltsev.com
Дата: 28.08.01 15:38
Оценка: +1
Здравствуйте Аноним, вы писали:

А>Можно ли в С++ динамически создать мног. массив?


А>double d[][];

А>d = new double[10][5];

А>или единств что возможно это


А>double* d;

А>d = new double[10*5];

Ну вот так вот можно:

double (*d)[5];
d = new double[10][5];
d[2][3];

Это будет работать только при условии, что индексы 2-го и дальше уровне фиксированные. Переменным может быть только первый.
Думать надо ...головой :)
Re[2]: Многомерные массивы динамически
От: TruthfulBob  
Дата: 10.11.04 23:45
Оценка: -1
Здравствуйте, Anton V. Kolotaev, Вы писали:

AVK>Здравствуйте Аноним, вы писали:


А>>Здра

А>>Можно ли в С++ динамически создать мног. массив?

А>>double d[][];

А>>d = new double[10][5];

А>>или единств что возможно это


А>>double* d;

А>>d = new double[10*5];

А>>и потом мучаться конвертировать индексы?

А>>Спасибо

AVK>А может быть лучше потратить некоторое время на изучение стандартной библиотеки? Там есть такое понятие как std::valarray<T>, std::slice_array<T>. Как использовать — прекрасно описано у Страуструпа 22.4.5 — 22.4.6.


Дорогой Антон! Насчет прекрасно описано у Страуса — это Вы загнули. Вы хоть сами пробовли создать матрицу из valarray которую он описал и она якобы должна работать? Не работает она. Нужно еще прилично попариться, чтобы она зашевелилась.
Моя точка зрения на его труды простая: Да он создал хороший язык. Но описать его толком не смог. Видать не родился он писателем. А принципы языка крайне недружелюбны к пользователю, т.е. к нам. Недаром существует этот форум и MSDN, прежде всего чтобы мы могли все это использовать в реальности. И недаром, когда читаешь MSDN — все кристально ясно. Просто ребята из MS прилично потрудились, чтобы их студия реально приносила пользу и доход нам. А вот Страус не удосужился. Типа гений. Я тоже могу быть ооооочень большим гением, если не буду обьяснять, что же я такое сделал. Да вот только считаю это просто не приличным.
Для чего создавался язык? Прежде всего — для уменьшения наших усилий. А в реальности они все растут и растут.
И недаром MS создал .NET и тот резко стал везде использоваться.
По поводу создателей STL я ничего не скажу, т.к. все выражения исключительно нецензурные. Прошу не серчать.
Отсутсвие встроенного оптимизированного динамического массива в языке — чистый .... Закочите сами.
С уважением,
Bob
Re[5]: Многомерные массивы динамически
От: McSeem2 США http://www.antigrain.com
Дата: 11.11.04 04:41
Оценка: +1
Здравствуйте, av, Вы писали:

av>1. a определяется как...

av>2. ...указатель на...
av>3. ...функцию, не принимающую параметров и возвращающую...
av>4. ...указатель на...
av>5. ...массив из 10...
av>6. ...указателей на...
av>7. ...char.

Круто компилируешь...
По мне, так лучше typedef. А уж если надо определить массив указателей на функции, возвращающие указатель на массив массивов функций другого типа... Формально такое объявление можно написать, но лучше-таки через typedef.
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Re[3]: Многомерные массивы динамически
От: Анатолий Широков СССР  
Дата: 11.11.04 08:09
Оценка: :)
[offtop]
Долго же зрела Ваша мысль — сообщение Антона датировано 28.08.01, а сейчас, как никак, 2004 на дворе и 2005 на носу
[/offtop]
Многомерные массивы динамически
От: Аноним  
Дата: 24.08.01 14:29
Оценка:
Здра
Можно ли в С++ динамически создать мног. массив?

double d[][];
d = new double[10][5];

или единств что возможно это

double* d;
d = new double[10*5];

и потом мучаться конвертировать индексы?
Спасибо
Re: Многомерные массивы динамически
От: Аноним  
Дата: 24.08.01 17:28
Оценка:
Здравствуйте Аноним, вы писали:

А>Здра

А>Можно ли в С++ динамически создать мног. массив?

А>double d[][];

А>d = new double[10][5];

А>или единств что возможно это


А>double* d;

А>d = new double[10*5];

А>и потом мучаться конвертировать индексы?

А>Спасибо

Попробуй так: //d[10][5];
double** d;

d=(double **)calloc(10,sizeof(double *));
for (int i=0; i<10; i++)
d[i]=(double *)calloc(5,sizeof(double));

for(i=0;i<10;i++)
for(int j=0;j<5;j++)
d[i][j]=j;

for(i=0;i<10;i++)
for(int j=0;j<5;j++)
{
CString str;
str.Format("d[%d][%d]=%.2f",i,j,d[i][j]);
AfxMessageBox(str);
}

тока удалять не забывай... в обратном порядке- сначала d[i], потом d
Пока!
Re[2]: Многомерные массивы динамически
От: Sasparella США  
Дата: 24.08.01 18:42
Оценка:
Здравствуйте Аноним, вы писали:

А>Здравствуйте Аноним, вы писали:


Ну вы даете! На С++ же пишем!!!!

Трудно класс подходящий набростаь?


Тут я думаю дело в другом. При исспользовании многомерных массивов в реальных приложениях, часто необходм пересчет некого его элемента по СОСЕДНИМ по каждому измерению.

При этом в случае эмуляции такого массива линейным обращение будет происходить в РАЗНЫЕ сильно расзнесенные физически участки памяти. В этом то и кривизна. Ибо большие массивы, на своп заползающие сильно будут тормозить.


Так я к чему — можно ли чтонибудь придумать — такой класс многомерного массива, чтобы при обращении к соседним по каждому индексу элементам, реально происходило обращение к более менее соседним ячейкам памяти?.

Саша.
Re[2]: Многомерные массивы динамически
От: Аноним  
Дата: 27.08.01 07:58
Оценка:
Здравствуйте Аноним, вы писали:

А>Попробуй так: //d[10][5];

А>double** d;

А>d=(double **)calloc(10,sizeof(double *));

А>for (int i=0; i<10; i++)
А>d[i]=(double *)calloc(5,sizeof(double));

А>for(i=0;i<10;i++)

А>for(int j=0;j<5;j++)
А>d[i][j]=j;

А>for(i=0;i<10;i++)

А>for(int j=0;j<5;j++)
А>{
А>CString str;
А>str.Format("d[%d][%d]=%.2f",i,j,d[i][j]);
А>AfxMessageBox(str);
А>}

А>тока удалять не забывай... в обратном порядке- сначала d[i], потом d

А>Пока!

Спасибо за ответ! Насчет сообщения Саши — врядли можно разместить многомерный массив так чтобы соседние элем находились по соседству т.к. распологая их рядом например по вертикали они будут находиться вразброс по горизонтали.
Re: Многомерные массивы динамически
От: Anton V. Kolotaev  
Дата: 28.08.01 11:52
Оценка:
Здравствуйте Аноним, вы писали:

А>Здра

А>Можно ли в С++ динамически создать мног. массив?

А>double d[][];

А>d = new double[10][5];

А>или единств что возможно это


А>double* d;

А>d = new double[10*5];

А>и потом мучаться конвертировать индексы?

А>Спасибо

А может быть лучше потратить некоторое время на изучение стандартной библиотеки? Там есть такое понятие как std::valarray<T>, std::slice_array<T>. Как использовать — прекрасно описано у Страуструпа 22.4.5 — 22.4.6.
Re[2]: Многомерные массивы динамически
От: Аноним  
Дата: 28.08.01 15:29
Оценка:
Здравствуйте Anton V. Kolotaev, вы писали:

AVK>А может быть лучше потратить некоторое время на изучение стандартной библиотеки? Там есть такое >понятие как std::valarray<T>, std::slice_array<T>. Как использовать — прекрасно описано у >Страуструпа 22.4.5 — 22.4.6.


Не подскажите где можно скачать эту книгу?
Re[3]: Многомерные массивы динамически
От: Андрей Тарасевич Беларусь  
Дата: 28.08.01 21:58
Оценка:
Здравствуйте Sasparella, вы писали:

S>Так я к чему — можно ли чтонибудь придумать — такой класс многомерного массива, чтобы при обращении к соседним по каждому индексу элементам, реально происходило обращение к более менее соседним ячейкам памяти?.


Нельзя. В общем случае нельзя спроецировать двумерный массив на одномерный с соблюдением такого условия. Могу привести формальное доказательство.

Best regards,
Андрей Тарасевич,
Brainbench C and C++ Programming MVP
Best regards,
Андрей Тарасевич
Re[3]: Многомерные массивы динамически
От: Anton V. Kolotaev  
Дата: 29.08.01 05:08
Оценка:
Здравствуйте Аноним, вы писали:
А>Не подскажите где можно скачать эту книгу?

За много лет шатания по инету 3изд. не встречалось ни разу.
2изд. есть у Мошкова (lib.ru).

Однако намного полезнее все-таки иметь при себе печатный вариант.
Re[2]: Многомерные массивы динамически
От: Аноним  
Дата: 29.08.01 08:05
Оценка:
ZORK>Ну вот так вот можно:

ZORK> double (*d)[5];

ZORK> d = new double[10][5];
ZORK> d[2][3];

ZORK>Это будет работать только при условии, что индексы 2-го и дальше уровне фиксированные. Переменным может быть только первый.


Спасибо, а почему *d в скобках? Извини за вопрос, я только учусь
Re[3]: Многомерные массивы динамически
От: ZORK Россия www.zorkaltsev.com
Дата: 29.08.01 13:38
Оценка:
Здравствуйте Аноним, вы писали:

ZORK>>Ну вот так вот можно:


ZORK>> double (*d)[5];

ZORK>> d = new double[10][5];
ZORK>> d[2][3];

ZORK>>Это будет работать только при условии, что индексы 2-го и дальше уровне фиксированные. Переменным может быть только первый.


А>Спасибо, а почему *d в скобках? Извини за вопрос, я только учусь


Я думаю что в стандарте или книгах по C++ возможно найти более точное определение — я не искал. Но идея следующая, когда в типе присутствует правая часть, то что-бы описать не него указатель используются скобки. Такая техника, наиболее часто используется для описания указателей на функции. Примеры:

int (*pF)(int n); — указатель на функцию int f(int n)

int (C::* f)(int n); — указатель на не статический метод int f(int n), класса C

typedef int (*func)(int n); — описение типа func, как указателя на функцию

typedef int (*arr)[30][50]; — можно понимать как указатель на массив [30][50], или просто как массив [n][30][50]

...ну и т.д.
Думать надо ...головой :)
Re[4]: Многомерные массивы динамически
От: Аноним  
Дата: 30.08.01 08:06
Оценка:
ZORK, Спасибо! теперь понятно.
Re[5]: Многомерные массивы динамически
От: Аноним  
Дата: 31.08.01 07:45
Оценка:
А как тогда объявить динамечески двумерный массив указателей на функции которые принимают int и возвращают double. Что то я запутался...
Re[6]: Многомерные массивы динамически
От: ZORK Россия www.zorkaltsev.com
Дата: 31.08.01 13:11
Оценка:
Здравствуйте Аноним, вы писали:

А>А как тогда объявить динамечески двумерный массив указателей на функции которые принимают int и возвращают double. Что то я запутался...


Я допускаю что это можно написать в одну строчку — но очевидно ничего читабельного не получится, так что я всегда пользуюсь в таких случаях typedef:

typedef double (*_f)(int);
_f (*arr)[40];

и тогда можно делать

double r = arr[1][2](12);
Думать надо ...головой :)
Re[5]: Многомерные массивы динамически
От: Tigor Россия  
Дата: 09.09.01 08:34
Оценка:
Спасибо, уважаемый Аv за это объяснение. :-)
Теперь даже мне не страшны никакие указатели :-)
К сожалению, в действительности все выглядит иначе, чем на самом деле.
Re[4]: Многомерные массивы динамически
От: VladD2 Российская Империя www.nemerle.org
Дата: 11.09.01 20:42
Оценка:
Здравствуйте Андрей Тарасевич, вы писали:

АТ>Здравствуйте Sasparella, вы писали:


S>>Так я к чему — можно ли чтонибудь придумать — такой класс многомерного массива, чтобы при обращении к соседним по каждому индексу элементам, реально происходило обращение к более менее соседним ячейкам памяти?.


АТ>Нельзя. В общем случае нельзя спроецировать двумерный массив на одномерный с соблюдением такого условия. Могу привести формальное доказательство.


Доказательство? Ооочень интересно было бы? ;o)

По-моему, если написать грамотный хелпер-класс, то можно все сэмулировать. Многомерный массив всегда можно развернуть в одномерный (см. реализацию SafeArray), а удобства в работе можно скрыть за переопределением оператора [].
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: Многомерные массивы динамически
От: VladD2 Российская Империя www.nemerle.org
Дата: 11.09.01 20:45
Оценка:
Здравствуйте Аноним, вы писали:

А>Здравствуйте Anton V. Kolotaev, вы писали:


AVK>>А может быть лучше потратить некоторое время на изучение стандартной библиотеки? Там есть такое >понятие как std::valarray<T>, std::slice_array<T>. Как использовать — прекрасно описано у >Страуструпа 22.4.5 — 22.4.6.


А>Не подскажите где можно скачать эту книгу?


ftp://the-gate.dnsalias.net/library/
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[5]: Многомерные массивы динамически
От: Андрей Тарасевич Беларусь  
Дата: 11.09.01 22:18
Оценка:
Здравствуйте VladD2, вы писали:

АТ>>Нельзя. В общем случае нельзя спроецировать двумерный массив на одномерный с соблюдением такого условия. Могу привести формальное доказательство.


VD>Доказательство? Ооочень интересно было бы? ;o)


VD>По-моему, если написать грамотный хелпер-класс, то можно все сэмулировать. Многомерный массив всегда можно развернуть в одномерный (см. реализацию SafeArray), а удобства в работе можно скрыть за переопределением оператора

[].

Никто не возражает, что двумерный массив можно спроецировать на одномерный. Речь идет о такой проекции, где рядом стоящие элементы в двумерном оказываются рядом и в одномерном. Интуитивно понятно, что такой проекции в общем случае быть не может, т.к. окрестность элемента двумерного массива содержит на порядок больше элементов, чем окрестность элемента одномерного массива.

Доказательство приведу позже. Голова сейчас другим забита.

Best regards,
Андрей Тарасевич,
Brainbench C and C++ Programming MVP
Best regards,
Андрей Тарасевич
Re[4]: Многомерные массивы динамически
От: Аноним  
Дата: 17.09.01 10:29
Оценка:
VD>ftp://the-gate.dnsalias.net/library/

Огромное спасибо — очень полезный ресурс
Re: Многомерные массивы динамически
От: Nuald Россия http://nuald.blogspot.com
Дата: 11.11.04 00:08
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Можно ли в С++ динамически создать мног. массив?


ИМХО, со скобками и указателями заморачиваться не стоит — потом такой код будет тяжело поддерживать, особенно если это будете делать не вы. Юзал boost::multi_array, понравилось...
Re[5]: Многомерные массивы динамически
От: McSeem2 США http://www.antigrain.com
Дата: 11.11.04 01:05
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Доказательство? Ооочень интересно было бы?


VD>По-моему, если написать грамотный хелпер-класс, то можно все сэмулировать. Многомерный массив всегда можно развернуть в одномерный (см. реализацию SafeArray), а удобства в работе можно скрыть за переопределением оператора [].


Может ты путаешь с разреженными массивами?
Вообще-то подобная задача называется NLM (non-linear mapping) и решается с помощью нейронных сетей. Решается достаточно хорошо, если надо увидеть глазами картину распределения кластеров многомерного пространства в 3D или даже в 2D. Но никак не в 1D! Здесь, как говорится, дружно едим конфетку "Обломиську".
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Re[3]: Многомерные массивы динамически
От: McSeem2 США http://www.antigrain.com
Дата: 11.11.04 01:35
Оценка:
Здравствуйте, TruthfulBob, Вы писали:

TB>Моя точка зрения на его труды простая: Да он создал хороший язык. Но описать его толком не смог. Видать не родился он писателем. А принципы языка крайне недружелюбны к пользователю, т.е. к нам. Недаром существует этот форум и MSDN, прежде всего чтобы мы могли все это использовать в реальности. И недаром, когда читаешь MSDN — все кристально ясно. Просто ребята из MS прилично потрудились, чтобы их студия реально приносила пользу и доход нам. А вот Страус не удосужился. Типа гений. Я тоже могу быть ооооочень большим гением, если не буду обьяснять, что же я такое сделал. Да вот только считаю это просто не приличным.


Очень удобное себе оправдание. "Я не гений, поскольку считаю что быть им неприлично". Шутка!

TB>Для чего создавался язык? Прежде всего — для уменьшения наших усилий. А в реальности они все растут и растут.

TB>И недаром MS создал .NET и тот резко стал везде использоваться.

Насчет Страуса Трупа как писателя — согласен, насчет MSDN — категорически не согласен. MSDN в основном представляет собой некий кастрированный вариант описания, сгенерированного при помощи Doxygen. Формально там все описано, но все настолько разобщено, что чтобы хоть что-то понять (читай — установить причинно-следственные связи) надо изрядно потрудиться. И если уж выбирать из двух зол, так лучше уж Страус, чем MSDN.

И если быть честными, то все пошло от Кернигана-Ричи, потом Страус подключился, ну а уж только потом-потом пошли всякие клоны типа Java и C#. По большому счету синтакс там — от C++, разве нет?

TB>По поводу создателей STL я ничего не скажу, т.к. все выражения исключительно нецензурные. Прошу не серчать.

TB>Отсутсвие встроенного оптимизированного динамического массива в языке — чистый .... Закочите сами.

Не скажите. Встроенный в язык динамический массив — безусловный маздай, поскольку не дает возможности контролировать распределение памяти. В результате чего, при активном его использовании, серверный демон рухнет через пару дней активного трепыхания. Просто из за фрагментации памяти. Отсюда вывод — не надо использовать встроенный в язык динамический массив. А нафига, спрашивается, он тогда нужен?
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Re[3]: Многомерные массивы динамически
От: McSeem2 США http://www.antigrain.com
Дата: 11.11.04 04:27
Оценка:
TB>Дорогой Антон! Насчет прекрасно описано у Страуса — это Вы загнули. Вы хоть сами пробовли создать матрицу из valarray которую он описал и она якобы должна работать? Не работает она. Нужно еще прилично попариться, чтобы она зашевелилась.

Кстати, забыл упомянуть, что "прилично попариться" надо как раз благодаря "Дорогому Товартщу Микрософту", который ничтоже сумняшеся забубенил слова "min" и "max" в препроцессор.
Какое место за такие дела в культурном обществе пасатижами отщипывают?
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Re: Многомерные массивы динамически
От: Laurel  
Дата: 11.11.04 11:36
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>Можно ли в С++ динамически создать мног. массив?

А>double d[][];
А>d = new double[10][5];
А>или единств что возможно это
А>double* d;
А>d = new double[10*5];
А>и потом мучаться конвертировать индексы?

Не понял, почему никто не предложил вариант (ответ с calloc я видел, но больно страшно это выглядит):

const int M = 10, N = 5;

double **d;

d = new double *[M];

for (int i = 0; i < M; i++)
{
    d[i] = new double[N];
}



Пользоваться d[i][j];

Чтобы освободить память:

for (int i = 0; i < M; i++)
{
    delete []d[i];
}

delete []d;
... << RSDN@Home 1.1.3 stable >>
Re: Многомерные массивы динамически
От: yxiie Украина www.enkord.com
Дата: 11.11.04 12:27
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>Здра

А>Можно ли в С++ динамически создать мног. массив?

А>double d[][];

А>d = new double[10][5];

А>или единств что возможно это


А>double* d;

А>d = new double[10*5];

А>и потом мучаться конвертировать индексы?

А>Спасибо

boost::multi_array однозначно
все велосипеды уже давно изобретены
... << RSDN@Home 1.1.3 stable >>
Re[2]: Многомерные массивы динамически
От: Аноним  
Дата: 11.11.04 12:35
Оценка:
Действительно развели такую дискусию на путом месте. Это же стандартный пример описанный в книга для начинающий программировать на C++.
Re: Многомерные массивы динамически
От: glyph  
Дата: 11.11.04 13:35
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>Здра

А>Можно ли в С++ динамически создать мног. массив?
А нет никакой ложки. Они все одномерные. Просто это один из способов адресации.
Re[2]: Многомерные массивы динамически
От: sva1509  
Дата: 11.11.04 17:33
Оценка:
Здравствуйте, glyph, Вы писали:

G>Здравствуйте, <Аноним>, Вы писали:


А>>Здра

А>>Можно ли в С++ динамически создать мног. массив?
G> А нет никакой ложки. Они все одномерные. Просто это один из способов адресации.

Абсолютно согласен !

Вы можете соэдать некий шаблон компилятору и динамически выделяя память адресовать ее через шаблон
Пример:

typedef int i[3][5]; //создаем шаблон

i *i2;   // создаем указатель типа шаблон
int *ii; // создаем линейный указатель

int main()
{
    i2=(i*)calloc(1,sizeof(i)); // Динамически резервируем память
    ii=(int*)i2; // Линейный указатель тудаже
    i2[0][1][1]=10; // в 0-ой элемент [1][1] заносим 10
    printf("%d",i2[0][1][1]); // отображение
        // ii[6] тоже будет равно 10
    free(i2); 
    getch();
    return(0);
}


Если же имелось ввиду создать некий абстрактный массив int i[][] аосле чего выделить память int [3][5]
и пытатся к ней обращатся по шаблонй i[3][5] то это средствами компилятора не возможно так как
копилятору не определен шаблон пересчета адресов.

С уважением Валерий.
Re[3]: Многомерные массивы динамически
От: Nuald Россия http://nuald.blogspot.com
Дата: 12.11.04 00:08
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Действительно развели такую дискусию на путом месте. Это же стандартный пример описанный в книга для начинающий программировать на C++.




Такие книги надо всенародно сжигать, а авторов отправлять на каторжные работы программировать на васике...
Re[4]: Многомерные массивы динамически
От: Laurel  
Дата: 12.11.04 12:13
Оценка:
Здравствуйте, Nuald, Вы писали:

А>>Действительно развели такую дискусию на путом месте. Это же стандартный пример описанный в книга для начинающий программировать на C++.


N>Такие книги надо всенародно сжигать, а авторов отправлять на каторжные работы программировать на васике...


Совершенно не согласен. Человек, задавший вопрос, явно только начинает разбираться с языком.
И учить его надо, двигаясь от простого к сложному, но никак не наоборот. boost::multi_array хорошо. Но человек, который второй раз в жизни пишет программу на С++ может потерять всякое желание писать третью, взглянув на

template<typename T, std::size_t NumDims,
  typename Allocator = std::allocator<T> >
class multi_array;

и т.д.

Очень хочу посмотреть с чего Вы начинали программировать вообще и на С++ в частности. Боюсь, не с boost и не с STL.
... << RSDN@Home 1.1.3 stable >>
Re[5]: Многомерные массивы динамически
От: yxiie Украина www.enkord.com
Дата: 12.11.04 12:26
Оценка:
Здравствуйте, Laurel, Вы писали:

L> Очень хочу посмотреть с чего Вы начинали программировать вообще и на С++ в частности. Боюсь, не с boost и не с STL.


Я начинал программировать на С++ с написания ECMA-262 подобного скриптового языка
И у меня даже получилось
... << RSDN@Home 1.1.3 stable >>
Re[5]: Многомерные массивы динамически
От: Nuald Россия http://nuald.blogspot.com
Дата: 13.11.04 00:22
Оценка:
Здравствуйте, Laurel, Вы писали:

L> Очень хочу посмотреть с чего Вы начинали программировать вообще и на С++ в частности. Боюсь, не с boost и не с STL.


Я вообще начинал с С, т.к. в то время С++ еще как такого не было в том виде, который есть сейчас. Но что пригодно для С, не должно использоваться в С++, т.к. вся его мощь именно в шаблонах, строгой типизации и т.п., но никак не в адресной арифметике. Если человек начнет программировать с адресной арифметики, то он разочаруется намного раньше в С++...
Re[6]: Многомерные массивы динамически
От: Шахтер Интернет  
Дата: 13.11.04 15:53
Оценка:
Здравствуйте, Nuald, Вы писали:

N>Здравствуйте, Laurel, Вы писали:


L>> Очень хочу посмотреть с чего Вы начинали программировать вообще и на С++ в частности. Боюсь, не с boost и не с STL.


N>Я вообще начинал с С, т.к. в то время С++ еще как такого не было в том виде, который есть сейчас. Но что пригодно для С, не должно использоваться в С++, т.к. вся его мощь именно в шаблонах, строгой типизации и т.п., но никак не в адресной арифметике. Если человек начнет программировать с адресной арифметики, то он разочаруется намного раньше в С++...


С++ — адресная арифметика = С#

Мощь C++ -- в том что он основан на С. И типизация в С не менее строгая, чем в С++. И адресная арифметика, нравится это кому-то или нет -- основополагающая часть языка.
... << RSDN@Home 1.1.0 stable >>
В XXI век с CCore.
Копай Нео, копай -- летать научишься. © Matrix. Парадоксы
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.