Обычно с new делают так int a = new int*[rowCount]; for(int i = 0; i < rowCount; ++i) a = new int[colCount];
В первой строчке объявляется массив массивов (указатель на указатель, так как массив это указатель на первый элемент массива, а если нам надо создать массив массивов, то это будет указатель на указатель на первый элемент a[0][0]). А дальше в цикле выделяется память под каждый массив в нашем массиве массивов.
Часто делают через одномерный массив и пишут методы для индекцсации одномерного массива как двумерного. Тут тоже идея понятна, думаю
Вы совсем дауны чтоли? Не можете посчитать размер массива без цикла? Потом такие дебилы идут в сиди проджект и создают массивы через цикл и вся игра лагает от этого.
>>235822664 Сношайся, полезно будет. Но надо как можно раньше понять, что язык это инструмент. И язык выбирается под задачу, а не наоборот. Поэтому главное разбираться в алгоритмах, структурах данных и т.д. А ЯПы это просто инструмент.
>>235822437 для чего нужно все в конце подчищать? до этого делал лабу, где надо было пузырьком сортировать массив, в некоторых решениях было delete []. Но я не использовал и работало тоже хорошо.
>>235823957 Можешь и не подчищать. Если всё происходит в скоупе функции, то память автоматически освободится от неиспользуемых ресурсов. Но если ты в main насоздашь массивов, а потом запустишь функцию которая будет работать на протяжении жизни приложения, то эти массивы будут забивать память до тех пор пока приложение не закончит своё выполнение.
>>235824816 > Если всё происходит в скоупе функции, то память автоматически освободится Хз, с сишкой очень давно имел дело, но на сколько помню, память выделенная оператором new будет висеть пока её освободят. Скоуп - это толоко если объявил типо int myvar[100500]; , тогда да, оно будет ограничено функцией.
>>235824816 >>235825138 Да, автоматически освобождается память, выделенная на стеке. Это статические переменные, типа int a. New это динамическое выделение памяти в куче. Такая память не будет подчищена после выхода из функции.
>>235825274 Ну так в ответе уже писали, что можно одномерны выделить и работать с индексами как у двумерного. Количество обращений к памяти при выделении памяти точно такое же. Так в чем твоя проблема?
>>235825509 Даже близко нет, башка болит от тонны алгоритмов, которые я учу в эти сутки перед сессией. Скорее ощущаю себя двачером-сисьадмином 3к/тысячелетие >>235825529 да, онли лекции. но я очень хочу почитать что-то, где будут подробно описаны основные алгосы для программирования. Эта книжка подойдет?
>>235825592 А, бля, там у тебя динамический массив. Ну тогда можно подумать как и на сколько будет меняться массив каждый раз. Если дельта примерно одинаковая, то можно выделять больше памяти чем требуется в конкретный момент. Тогда будет меньше обращений за выделением.
>>235825845 слушай, а вот у тебя тоже есть такая тема, что алгосы трудно самому вывести? я всегда пытаюсь сначала придумать алгоритм самостоятельно, а то подглядывать в учебник и смотреть их мне почему-то кажется зашкваром. начинаю чувствовать себя чмом неразумным. это окей?
>>235825705 С ходу - маппинг значений. Допустим у тебя здоровый массив в котором хранятся некие адреса/индексы/строковые костанты. Обращением по индексу ты мапишь, скажем, вывод нейронки на последовательность букв. Словарь у тебя на 50000 экземпляров, в батче вычисляется одновременно 256 семплов, и эта хуйня прогоняется 10 раз в секунду. Прикинь, сколько вычислений будет, если для получения каждого элемента словаря мы будем каждый раз проходиться по связанному списку. А потом кукарекай, что массивы не нужны.
>>235825887 > Тогда будет меньше обращений за выделением. И больше памяти будет жраться, чем нужно. Нахуй выделять больше, чем нужно? Охуенная оптимизация у тебя. Ну обращения и обращения к памяти, чем тебе это не нравится?
>>235826630 Короче начал вчитвыаться в вашу переписку, думал что ты тот спискошизик, читаю и не могу понять о чём вы там спорили. Короче, идите нахуй вы оба.
>>235827075 Я не спискошизик. Чел начал кукарекать, что плохо память выделять и т.д. Ну и я немного поспрашивал его, видно, что человек вообще не понимает, о чем говорит. А бред самоуверенных студентиков 2-го курса иногда очень доставляет читать, особенно когда они обсираются с подливой на ровном месте.
>>235826732 >>235826213 Кто-то сравнил её с запихиванием огромной ржавой трубы в анус без смазки. После этого любые другие книги легко заходят. Читать её и тем более решать задачкибыло больно, но зато как справился, то презошол на столько в своём познании, что книга лафоре прочиталась на одном дыхании без единого непонятного момента до той главы где он не сказал "в коде есть ключевое слово this не обращайте на него внимания чуть позже мы изучим что это такое". Дойдя до этого места я дропнул лафоре и возрадовался, что прочитал Страуструпа и не приходится мучить себя бесполезной литературкой
>>235826625 Пфф, для этого используются словари в питоне или объекты в js Думаю даже в таком отсталом языке как c++ есть для этого структура данных, ну не как не статический массив.
>>235828545 Это толстота или тупость? Я не понимаю, ты реально не понмиаешь или троллишь? Массив в сях это максимально близкое к железу представление пронумерованного набора данных. Все остальные структуры данных либо связные, но там сложность доступа не константа, либо основаны на массивах, но это не очень эффективно с точки зрения памяти. Надо понимать, что что-то базовое можно обмазать в 100500 слоев асбтракции, но принцип работы вычислений это не изменит.