Собственное: советы, необходимые для распределения памятиC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Собственное: советы, необходимые для распределения памяти

Сообщение Anonymous »

Я пытаюсь написать эффективный многоэтапный решатель в C ++, используя библиотеку собственного. Для этого мне нужно несколько переменных, которые отслеживают историю. Один из них имеет тип собственного :: vectorx dd , который изменяется до 10000 где -то в моем коде инициализации.
Несмотря на то, что я знаю размер dd во время компиляции, мне нужно распределить его на кучу, потому что dd слишком велик для стека (по крайней мере, это то, что говорит Visual Studio 2022 я). Я постараюсь объяснить, почему:

[*] Вы могли заметить, что dd является вектором размера 10000 на куче. Его элементы имеют матрицу типа , следовательно, живут в стеке (?). Написание этого текста уже звучит неправильно для меня. Можно ли иметь объект, который выделяется как на кучу, так и на стеке? Или компилятор движет все на куче? dd ?

[*] Я думал, что заменяю матрицу by matrixxd и дай это пытаться. Ну, это работает, но все на 15-20%. Итак, почему -то я думаю, что этот вопрос дает ответ на мой первый и второй вопрос, но я действительно еще не убежден. < /P>
< /li>
Если бы я мог заменить Vectorx vector это повысит производительность? Как я могу «заставить» использовать свою программу вместо кучи? > быть определенным? Я заменил собственное :: vector на std :: vector , что на самом деле ничего не изменило, по крайней мере, на стороне производительности.

< /ol>
Мне нужно все время читать из dd , поэтому любая помощь высоко ценится.

Подробнее здесь: https://stackoverflow.com/questions/794 ... allocation
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»