Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для Drongo

Будем жить, Маэстро...


Сообщения: 6694
Благодарности: 1393

Профиль | Сайт | Отправить PM | Цитировать


Доброго здоровья и с прошедшим Рождеством!
Цитата pva:
"стек". Он и действует по принципу "последний зашёл, первый вышел". »
Да, спасибо большое, я сегодня читал, по классу vector есть ещё list и deque, прочитал, что vector и deque, более "близки" по принципу, добавляют данные только в начало или в конец, а list, может добавлять в середину списка
Цитата pva:
template<typename T> »
шаблоны изучал, но не глубинно, ещё знаю, что есть стеки, очереди, деревья, списки, также, что принцип - "первый вошёл - первый вышел", "первый вошёл - последний вышел", но это я ещё буду основательно изучать в скором времени, но коль столкнулся уже сейчас, то почему бы паралельно не захватить багаж знаний касательно сих вещей, Вам,pva, с глубоким уважением жму руку, за терпение к моим вопросам! А так же 5pliT'у! Ошибку компилятор выдавал ту что Вы говорили,
Цитата pva:
stack overflow »
, мне казалось, что при размере большем, чем 20000, массив правильно не выделяется, и элементам не "удаётся правильно" расположиться последовательно, поэтому происходит такая ошибка... pva, Вы могли бы мне объяснить эти строки или поправить меня?! Я сейчас напишу, как я их понял.
1.
Код: Выделить весь код
vector<int> mem_TempArray(Position * Rasryad);
 int* TempArray[Rasryad];
Вы создаёте массив целых чисел и приводите его к типу vector, а потом создаём массив указателей TempArray на целое число, для того, чтобы хранились не числа, а адреса, так будет "дешевле" для памяти... Поправьте, или дополните мои пробелы в объяснении.
И вот эту строку.
2.
Код: Выделить весь код
for(unsigned n = 0; n < Rasryad; ++n) TempArray[n] = &mem_TempArray[Position * n];
Здесь, я немного не понял, &, операция адресации, возвращает адрес своего правого операнда, а потому, думаю, что присваивает адрес массиву указателей! [Position * n] - это расположение элементов соответствено чему?! К примеру, Position = 20000;, а n = 2;, то при умножении, будет TempArray[2] = &mem_TempArray[40000];, тоесть, третьему элементу массива TempArray, присвоится значение... я тут запутался... Объясните пожалуйста...
Кстати, с Вашей модификацией, действительно всё работает на Ура!!!

-------
Правильная постановка вопроса свидетельствует о некотором знакомстве с делом.
3нание бывает двух видов. Мы сами знаем предмет — или же знаем, где найти о нём сведения.
[Quick Killer 3.0 Final [OSZone.net]] | [Quick Killer 3.0 Final [SafeZone.cc]] | [Парсер логов Gmer] | [Парсер логов AVZ]

http://tools.oszone.net/Drongo/Userbar/SafeZone_cc.gif


Отправлено: 23:41, 08-01-2008 | #11