102 / 102 / 40
Регистрация: 24.01.2014
Сообщений: 1,242
1

Как выделять память для элементов рваного массива?

14.07.2014, 01:20. Показов 2090. Ответов 25
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Как выделять память для элементов рваного массива ?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.07.2014, 01:20
Ответы с готовыми решениями:

Как динамически выделять память на один элемент массива?
Вот программа: int main() { int n,a,b; Item *mas; cout << "Enter amount of...

Напишите программу для поиска всех не повторяющихся элементов рваного массива
Задание такое : Напишите программу для поиска всех не повторяющихся элементов рваного массива. ...

Написать программу для вывода и смены позиций максимального и минимального элементов рваного массива
Помогите пожалуйста написать программу для вывода и смены позиций максимального и минимального...

Если инициализируешь сразу переменные массива, то выделять память не обязательно?
как правильно будет?

25
1195 / 588 / 88
Регистрация: 20.09.2012
Сообщений: 1,881
17.07.2014, 08:05 21
Author24 — интернет-сервис помощи студентам
Цитата Сообщение от Psilon Посмотреть сообщение
работа с целыми, и работа с указателем
указатель как ни странно тоже целое. ладно б еще про выделение памяти упомянули, там да потери есть (хотя 10 млн туплов собираются за секунду), но сравнивать длинные целые с указателями это как теплое с теплым сравнить. теперь об операциях. ну допустим что вариант с туплами медленее раза в 3 чем с целыми. и допустим что конкретно в алгоритме 10% времени (что астрономически много) уходит на операции с массивом. что получаем на выходе от "оптимизации целыми"? а ниче не получаем. пшик называется, а "не в разы". т.е как и говорилось съэкономили на спичках , потеряли все бенефиты которые можно было бы извлечь легким изменением кода типа
C#
1
2
private Dictionary<Tuple<A, B>, T> container = new Dictionary<Tuple<A, B>, T>();
// и далее по тексту.
так что вариант с целыми в целом остается неинтересным.

зы: и ваш вариант кстати с ошибкой в реализации и все равно в этом виде работать не будет
0
Master of Orion
Эксперт .NET
6098 / 4954 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
17.07.2014, 17:21 22
Цитата Сообщение от pycture Посмотреть сообщение
указатель как ни странно тоже целое. ладно б еще про выделение памяти упомянули, там да потери есть (хотя 10 млн туплов собираются за секунду), но сравнивать длинные целые с указателями это как теплое с теплым сравнить. теперь об операциях. ну допустим что вариант с туплами медленее раза в 3 чем с целыми. и допустим что конкретно в алгоритме 10% времени (что астрономически много) уходит на операции с массивом. что получаем на выходе от "оптимизации целыми"? а ниче не получаем. пшик называется, а "не в разы". т.е как и говорилось съэкономили на спичках , потеряли все бенефиты которые можно было бы извлечь легким изменением кода типа
http://books.google.ru/books?i... &q&f=false
0
1195 / 588 / 88
Регистрация: 20.09.2012
Сообщений: 1,881
17.07.2014, 17:30 23
Цитата Сообщение от Psilon Посмотреть сообщение
http://books.google.ru/books?id=fhpY...page&q&f=false
и что мне надо узреть в этой ссылке, где "Страницы с 62 по 75 не оборажаются в предварительном просмотре"?
там есть чтото что противоречит тому что я написал или что?
0
Master of Orion
Эксперт .NET
6098 / 4954 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
17.07.2014, 18:15 24
pycture, странно.

Обычный размер двумерных массивов - 10000х10000, получаем 400 мегабайт на одни только ссылки. Круто. В х64 так вообще 800 Nice.

ссылку щас исправим:
https://docs.google.com/gview?... :0.page.64
так работает?

Добавлено через 1 минуту
(если сразу не прогрузит просто на строку адреса и enter. Просто нужная инфа с 65 страницы )
0
1195 / 588 / 88
Регистрация: 20.09.2012
Сообщений: 1,881
18.07.2014, 08:49 25
Цитата Сообщение от Psilon Посмотреть сообщение
Обычный размер двумерных массивов - 10000х10000, получаем 400 мегабайт на одни только ссылки. Круто. В х64 так вообще 800 Nice.
так все-таки основная проблема (как я и упоминал) в памяти, а не в скорости. ну так ежу понятно за удобство надо платить. теперь о памяти. помниться некоторые предлагали весь массив (ээ.. 10000х10000 значит) при каждом увеличении размерности на единицу пересоздавать и копировать и эти люди запрещают мне хранить ссылки на туплы
0
Master of Orion
Эксперт .NET
6098 / 4954 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
18.07.2014, 11:06 26
pycture, список тоже работает с перевыделениями, только есть методы умнее, чем увеличение на 1

что касается скорости: все что я предлагаю, вместо Tuple-классов использовать Tuple-структуры. Но long получается еще быстрее, т.к. выполняется за то же время, что и int операции с ним. Хотя за счет конвеера может сравнение двух интов будет быстрее, чем одного long, но тут уже надо смотреть

Энивей, туплы-классы сильно замедляют, но и память тоже жрут.
0
18.07.2014, 11:06
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.07.2014, 11:06
Помогаю со студенческими работами здесь

Для каких Qt классов нужно выделять память через new, а какие в стеке?
точнее: ... а какие можно в стеке?

Как лучше выделять память: динамичски или в стэке?
Я раньше всегда думал, что в стеке происходит более быстрое выделение, но сейчас нашел в интернете...

Отсортировать элементы рваного массива в порядке увеличения в строках, сумма элементов которых является четным числом
Здравствуйте всем! Никак не получается решить эту задачу: Сгенерировать массив чисел из интервала...

Функция realloc отказывается выделять память
#include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #define MAX_WORD_LENGTH 20 #define SMALLEST_CHAR 0...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru