|
указатель на std::array
|
|||
---|---|---|---|
#18+
andron81 Скажите , а можно всё же каким-то образом массив объявить и определить из таких указателей на такие массивы std::array < mystruct,N> ??? или это уже невозможно ? Возможно. Просто пойми что при наличии гигабайтов свободной памяти ты ограничен 1 Мб или чуть больше. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2021, 21:44 |
|
указатель на std::array
|
|||
---|---|---|---|
#18+
Dima T andron81 Скажите , а можно всё же каким-то образом массив объявить и определить из таких указателей на такие массивы std::array < mystruct,N> ??? или это уже невозможно ? Возможно. Просто пойми что при наличии гигабайтов свободной памяти ты ограничен 1 Мб или чуть больше. а как это сделать ??? ))) ну вот я попытался . и не работает. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2021, 08:43 |
|
указатель на std::array
|
|||
---|---|---|---|
#18+
Извиняюсь, невнимательно прочитал вопрос. В один массив никак не собрать std::array<mystruct, N>& с разными значениями N. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2021, 08:47 |
|
указатель на std::array
|
|||
---|---|---|---|
#18+
Dima T, видимо плохо сформулировал вопрос. теперь понятно. ладно , спасибо . ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2021, 08:57 |
|
указатель на std::array
|
|||
---|---|---|---|
#18+
andron81, Если что vector и другие динамические контейнеры тоже можно на стеке выделять (>= С++17). Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Тут monotonic_buffer_resource это аллокатор который выделяет память из массива pool на стеке пока она не закончится, а потом начинает выделять из общей кучи. Так что для маленьких векторов все будет храниться на стеке. ЗЫ. В Boost есть реализация pmr для компиляторов до C++17 ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2021, 12:57 |
|
указатель на std::array
|
|||
---|---|---|---|
#18+
Anatoly Moskovsky Если что vector и другие динамические контейнеры тоже можно на стеке выделять (>= С++17). у них же тогда должен измениться принцип работы, или как они будут динамически память выделять? а почему pool - char ? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2021, 14:42 |
|
указатель на std::array
|
|||
---|---|---|---|
#18+
бабушкин зайчик, Все контейнеры в С++ поддерживают параметром аллокатор. PMR использует эту концепцию и реализует единый класс аллокатор для всех контейнеров - std::pmr::polymorphic_allocator. А к нему есть плагины, реализуещие интерфейс memory_resource. monotonic_buffer_resource это один из них. Ему даешь любой буфер и он из него выделяет память пока не кончится буфер, а потом из кучи или другого указанного ресурса. Т.е. сам std::pmr::vector это тот же std::vector в котором параметр шаблона Allocator = polymorphic_allocator. Принцип работы не меняестя - код тот же. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2021, 14:52 |
|
указатель на std::array
|
|||
---|---|---|---|
#18+
не тот же, аллокатор же другой... И выделяет память он стало быть по-другому ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2021, 20:18 |
|
указатель на std::array
|
|||
---|---|---|---|
#18+
andron81 Скажите , а можно всё же каким-то образом массив объявить и определить из таких указателей на такие массивы std::array < mystruct,N> ??? или это уже невозможно ? технически ведь указатель на массив - это указатель на первый элемент + размер ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2021, 12:38 |
|
|
start [/forum/topic.php?fid=57&gotonew=1&tid=2017206]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
30ms |
get topic data: |
12ms |
get first new msg: |
7ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
2ms |
others: | 237ms |
total: | 374ms |
0 / 0 |