Wake of Gods Forum | Форум Во Имя Богов

Full Version: С++, общая тема
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
у меня в мингв это выглядит так
Code:
/* Traditional/XOPEN math constants (double precison) */
#ifndef __STRICT_ANSI__
#define M_E        2.7182818284590452354
#define M_LOG2E        1.4426950408889634074
#define M_LOG10E    0.43429448190325182765
#define M_LN2        0.69314718055994530942
#define M_LN10        2.30258509299404568402
#define M_PI        3.14159265358979323846
#define M_PI_2        1.57079632679489661923
#define M_PI_4        0.78539816339744830962
#define M_1_PI        0.31830988618379067154
#define M_2_PI        0.63661977236758134308
#define M_2_SQRTPI    1.12837916709551257390
#define M_SQRT2        1.41421356237309504880
#define M_SQRT1_2    0.70710678118654752440
#endif
может 11 очень ревностно относится к стандарту и шаг влево/вправо влекут расстрел?
на каждый ifndef найдется свой undef
Не дадите ссылку на статью по динамическим массивам? Да, слоупочу, но все что нашел - базовые, как объявить, и очень вкратце как использовать.
это слишком "далеко"?
packa, в Вики всё отлично расписано: http://ru.wikipedia.org/wiki/Vector_(C++)

Хотя, для полноценного понимая вектора нужно всё-таки знать, что такое "шаблоны"...
Efrit, так вектор это объект, а не динамический массив. тогда больше подойдет статья по указателям (или эта: англ(оригинал)/рус (игнорируем убогую венгерскую нотацию в начале статьи))
Не знаю, как внутри реализован Vector, но думаю, что массивом, соответственно он имеет даже побольше прав называться "динамический массив", чем указатель. По крайней мере для меня, больше привыкшего к нормальным языкам со встроенными динамическими массивами.
Прямо таки у вас отлично Noob Protection работает! Sm Спасибо))

P.S. Научился динамическому расширению динамического массива (лол) )
Делаю это так: При нужде увеличить
1)создаю еще один массив с такой же размерностью,
2)копирую в него все значения данного массива
3) удаляю данный массив
4) создаю новый массив с размерностью х+1
5) копирую из массива - фантома все значения обратно
6) удаляю массив фантом
7) присваиваю свеже созданной ячейке переменную
8) Вот )

Насколько корректен такой алгоритм?
Насколько он быстр?
У меня пока около 7-8 массивов, и даже 1 трехмерный. Как оно будет с современным компом?
месье знает толк в извращениях! ©

Ужас какой. Такой алгоритм точно никуда не годится.
Например, если тебе придётся "динамически расширять массив" внутри рекурсивной функции, то при больших размерах исходного массива тебе тупо не хватит оперативной памяти, и возникнет переполнение стека.

Уж проще вектор освоить, реально Ab Нету в нём ничего сложного...
Я еще фишку прикручивал, что если идет удаление ячейки посередине массива, то все сдвигается. Так что это еще лайт-версия)

Quote:Уж проще вектор освоить, реально Ab Нету в нём ничего сложного...
Ну не знаю) Я даже в название впереть не могу, с каких щей это вектор?) Вектор это такая линия со стрелочкой)
Сразу ассоциации с канвой, ну никак не с массивами)

То бишь я не могу его представить . А массив штука изьюзаная мной вдоль и поперек, мое родное)) Хоть какие то представления имеются.

И еще, чтобы мой пост не был лишен смысла:
Я всю отрисовку делаю через Canvas->Drow, и каждые 10мс закрашиваю черным прямоугольником на весь экран - из за чего все довольно некрасиво мигает. Any ideas?
(27.04.2012 14:36)GrayFace Wrote: [ -> ]Не знаю, как внутри реализован Vector, но думаю, что массивом, соответственно он имеет даже побольше прав называться "динамический массив", чем указатель.
я имел ввиду, что указатель ближе к голому динамическому массиву, чем вектор.
(27.04.2012 14:48)packa Wrote: [ -> ]Насколько корректен такой алгоритм?
Насколько он быстр?
он крайне корректный и крайне медленный. для ускорения можно сразу создавать новый массив нового размера, копировать, удалять старый и переприсваивать. но так теряется корректность и могут быть проблемы с освобождением памяти. вот в чем С лучше С++ - так это в выделении памяти. обрати внимание на функции calloc, realloc, free.

и на файл memory.h

(27.04.2012 16:30)packa Wrote: [ -> ]с каких щей это вектор?) Вектор это такая линия со стрелочкой)
вспомни его координаты
(27.04.2012 16:30)packa Wrote: [ -> ]Any ideas?
в C# элементу управления (по крайней мере, форме) можно установить двойную буферизацию. поищи это.
gamecreator Wrote:в C# элементу управления (по крайней мере, форме) можно установить двойную буферизацию. поищи это.

В плюсовой VCL тоже. this->DoubleBuffered = true, если в синтаксисе не опечатался...
Кто-нибудь знает программы для вычисления числа Пи или других констант с большой точностью? С открытыми исходниками очень желательно.
Image: bb1658a0185ff273d8a1a79611d7b470.png

Программу теперь, думаю, можно написать и самому Ab
Как смешно.
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
Reference URL's