Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
wwmwwm
0 / 0 / 0
Регистрация: 05.06.2012
Сообщений: 75
#1

Динамически или статически - C++

22.07.2013, 22:06. Просмотров 526. Ответов 9
Метки нет (Все метки)

Что лучше для олимпиад, динамически выделять память, или статически. В исходниках крутых олимпиадников в основном вижу, что под массив выделяют память вот так:
const int N = 2222222;

char s[11111111];
Либо сразу массив большой, а потом используют лишь часть памяти, либо константу, которую потом используют для массивов. Только не совсем понимаю, почему они это делают это же усложняет работу с ними, почему нельзя выучить динамическое выделение памяти. Что лучше?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.07.2013, 22:06
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Динамически или статически (C++):

GCC как часть библиотек линковать статически, а часть динамически?
Просто пока лень Qt пересобирать, чтобы возыметь статик-либы. Нужно Qt...

Динамически менять имя файла (или папки)
Здравствуйте еще раз, вот код создания файла ofstream omeg1; ...

Как динамически создать массив из динамически конструируемых экземпляров класса?
Есть два класса.Подразумевается ,что первый в конструкторе выделяет интовый...

Указать папку для статически подключаемых dll
Вопрос в теме. В темах форума ничего дельного не нашел.

Почему нельзя выделить статически кусок в ~100 MB?
Есть код #include <iostream> using namespace std; enum { length = 256,...

Как статически включить в ехе файл dll
Есть .lib и .dll Как на MS VC++6 собрать ехе файл так чтобы все что нужно из...

9
Tulosba
:)
Эксперт С++
4746 / 3240 / 496
Регистрация: 19.02.2013
Сообщений: 9,046
22.07.2013, 22:09 #2
Суть всяких олимпиадных задач сводится к тому, чтобы сделать быстро, а не красиво и впрок. Отсюда и массивы на стеке в том числе.
0
Issues
430 / 365 / 149
Регистрация: 06.08.2012
Сообщений: 961
22.07.2013, 22:10 #3
Статически будет быстрее.
0
wwmwwm
0 / 0 / 0
Регистрация: 05.06.2012
Сообщений: 75
22.07.2013, 22:21  [ТС] #4
Никто не знает статью об этом вопросе?
0
alsav22
5438 / 4833 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
23.07.2013, 02:38 #5
Цитата Сообщение от wwmwwm Посмотреть сообщение
Никто не знает статью об этом вопросе?
Статью по этому вопросу: "Что лучше для олимпиад, динамически выделять память, или статически."?
0
salam
174 / 155 / 28
Регистрация: 10.07.2012
Сообщений: 766
23.07.2013, 06:50 #6
за редким исключением, создают глобальные массивы большого размера. это быстрее, это проще, это не захламляет код... вообще я не вижу не единой причины для того, чтобы программа, которая должна работать секунду, выделяла память кусочками, потом ее чистила, потом еще что-то...
0
wwmwwm
0 / 0 / 0
Регистрация: 05.06.2012
Сообщений: 75
23.07.2013, 13:53  [ТС] #7
Цитата Сообщение от salam Посмотреть сообщение
за редким исключением, создают глобальные массивы большого размера. это быстрее, это проще, это не захламляет код... вообще я не вижу не единой причины для того, чтобы программа, которая должна работать секунду, выделяла память кусочками, потом ее чистила, потом еще что-то...
Но все же с динамическим выделением проще. Я всегда создаю массив нужного размера, знаю сколько там элементов. Если все же я буду делать алгоритмы хорошо, думаю разницы не будет?
0
dr.curse
392 / 348 / 36
Регистрация: 11.10.2010
Сообщений: 1,907
23.07.2013, 13:56 #8
Цитата Сообщение от wwmwwm Посмотреть сообщение
Я всегда создаю массив нужного размера, знаю сколько там элементов.
это значит что ты создаешь динамически?
0
Thinker
Эксперт С++
4232 / 2206 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
23.07.2013, 13:57 #9
Цитата Сообщение от wwmwwm Посмотреть сообщение
Но все же с динамическим выделением проще. Я всегда создаю массив нужного размера, знаю сколько там элементов. Если все же я буду делать алгоритмы хорошо, думаю разницы не будет?
представьте, что у вас имеется текстовый файл размера не более 100 мб., каждое слово не более 10 символов. вам требуется все слова из файла записать в массив (указателей). Ваши действия?
0
salam
174 / 155 / 28
Регистрация: 10.07.2012
Сообщений: 766
23.07.2013, 19:12 #10
Цитата Сообщение от wwmwwm Посмотреть сообщение
Но все же с динамическим выделением проще. Я всегда создаю массив нужного размера, знаю сколько там элементов. Если все же я буду делать алгоритмы хорошо, думаю разницы не будет?
это ваше личное дело. пишите так, как вам удобнее. когда я начал, тоже всегда пользовался new и удивлялся, как неэффективно люди обращаются с ресурсами. по прошествии времени все изменилось. просто становится понятно, на что реально стоит обращать внимание, а на что - нет. я просто пожелаю вам успехов: если вы решили заняться олимпиадным программированием, ваши начинания достойны похвал.
0
23.07.2013, 19:12
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.07.2013, 19:12
Привет! Вот еще темы с решениями:

Вывод двумерного статически создаваемого массива символов (char) в cout
Приветствую всех. Подскажите пожалуйста как вывести через cout в терминал...

Как вернуть из функции ссылку на статически создаваемый двумерный массив?
foo(...){ static int Arr return Arr; } int ((foo)(const int m)) ...

Динамически
Что обозначает слово динамически в таких словах: динамический массив,...

Динамически создать массив
Все чуть посложнее, чем кажется. Goat, Wolf, Cowboy - производные классы от...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru