|
указатель на std::array
|
|||
---|---|---|---|
#18+
есть функция которая хотелось бы чтобы принимала в качестве одного из параметров указатель на массивы разной размерности вида : const std::array < mystruct,N> где mystruct эта моя простенькая структура , а вот N у таких массивов разный. вопрос можно ли объявить тип значение которого указатель на const std::array < mystruct,N> ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2021, 11:39 |
|
указатель на std::array
|
|||
---|---|---|---|
#18+
Dima T вектор не пойдет. не хочу динамическую аллокацию. Шаблоны - да . Но тут их надо с параметром . я пока затрудняюсь, почитаю, если что ещё спрошу. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2021, 12:54 |
|
указатель на std::array
|
|||
---|---|---|---|
#18+
andron81 вектор не пойдет. не хочу динамическую аллокацию. Если std::array на стэке размещается, то будь осторожен, стэк всего 1 Мб, выйти за пределы элементарно. andron81 Шаблоны - да . Но тут их надо с параметром . я пока затрудняюсь, почитаю, если что ещё спрошу. Параметром будет размер (N). ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2021, 13:29 |
|
указатель на std::array
|
|||
---|---|---|---|
#18+
Dima T стэк всего 1 Мб это на винде? Linux ulimit -s показывает 8192 ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2021, 13:49 |
|
указатель на std::array
|
|||
---|---|---|---|
#18+
andron81, Код: plaintext 1. 2. 3. 4.
Надо только помнить что тело шаблона должно быть в хедере, а не в .cpp (если это не локальная функция используемая только в этом .cpp файле) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2021, 14:02 |
|
указатель на std::array
|
|||
---|---|---|---|
#18+
бабушкин зайчик Dima T стэк всего 1 Мб это на винде? Linux ulimit -s показывает 8192 В виндавсе размер стэка при компиляции задается. В MSVC по умолчанию 1 Мб. 8 Мб не намного лучше, тоже легко переполнить. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2021, 14:04 |
|
указатель на std::array
|
|||
---|---|---|---|
#18+
Anatoly Moskovsky andron81, Код: plaintext 1. 2. 3. 4.
Надо только помнить что тело шаблона должно быть в хедере, а не в .cpp (если это не локальная функция используемая только в этом .cpp файле) здорово ! спасибо. в шаблонах я вообще нулевой . ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2021, 14:12 |
|
указатель на std::array
|
|||
---|---|---|---|
#18+
Dima T andron81 вектор не пойдет. не хочу динамическую аллокацию. Если std::array на стэке размещается, то будь осторожен, стэк всего 1 Мб, выйти за пределы элементарно. то есть у нас ограничения по количеству элементов в массиве ? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2021, 14:19 |
|
указатель на std::array
|
|||
---|---|---|---|
#18+
Anatoly Moskovsky andron81, Код: plaintext 1. 2. 3. 4.
Надо только помнить что тело шаблона должно быть в хедере, а не в .cpp (если это не локальная функция используемая только в этом .cpp файле) Ещё это может быть закрытый метод класса, объявленный в .h, а реализованный в .cpp. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2021, 14:34 |
|
указатель на std::array
|
|||
---|---|---|---|
#18+
andron81 Dima T пропущено... Если std::array на стэке размещается, то будь осторожен, стэк всего 1 Мб, выйти за пределы элементарно. то есть у нас ограничения по количеству элементов в массиве ? Да, но не в одном массиве, а во всех вместе. Будешь гуглить - не путай с std::stack<>, читай про стек потока ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2021, 14:43 |
|
указатель на std::array
|
|||
---|---|---|---|
#18+
Если уж писать шаблонную функцию, работающую со множеством, то делать ее сигнатуру в стиле STL: [begin; end). Такое решение позволит отложить выбор статической/динамической аллокации на более поздний этап. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2021, 14:52 |
|
указатель на std::array
|
|||
---|---|---|---|
#18+
Dima T andron81 пропущено... то есть у нас ограничения по количеству элементов в массиве ? Да, но не в одном массиве, а во всех вместе. Будешь гуглить - не путай с std::stack<>, читай про стек потока что не путать ? структуру данных стек и область памяти стек где хранятся переменные друг за другом ? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2021, 15:01 |
|
указатель на std::array
|
|||
---|---|---|---|
#18+
andron81 Dima T пропущено... Да, но не в одном массиве, а во всех вместе. Будешь гуглить - не путай с std::stack<>, читай про стек потока что не путать ? структуру данных стек и область памяти стек где хранятся переменные друг за другом ? Да. Они одним и тем же словом называются. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2021, 15:05 |
|
указатель на std::array
|
|||
---|---|---|---|
#18+
andron81, строго говоря - тут речь про ограничение размера стэка потока, а не про ограничение количества элементов в контэйнере "стэк". количество элементов в контэйнере ограничено типом size_t и в настоящий момент можно считать это ограничение бесконечно большим :) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2021, 15:09 |
|
указатель на std::array
|
|||
---|---|---|---|
#18+
Раз уж мы пустились в обсуждения "стека", позвольте и мне вставить свои три копейки: std::stack - это абстракция, которая ничего не говорит о структуре хранения. Она лишь определяет набор операций с элементами множества. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2021, 15:15 |
|
указатель на std::array
|
|||
---|---|---|---|
#18+
AmKad, ну да . можно и свой класс "стэк" намутить с обычным массивом в качестве контейнера . ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2021, 15:22 |
|
указатель на std::array
|
|||
---|---|---|---|
#18+
Скажите , а можно всё же каким-то образом массив объявить и определить из таких указателей на такие массивы std::array < mystruct,N> ??? или это уже невозможно ? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2021, 16:36 |
|
указатель на std::array
|
|||
---|---|---|---|
#18+
andron81 Скажите , а можно всё же каким-то образом массив объявить и определить из таких указателей на такие массивы std::array < mystruct,N> ??? или это уже невозможно ? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2021, 16:54 |
|
указатель на std::array
|
|||
---|---|---|---|
#18+
PetroNotC Sharp, Ну да. Таких проблем бы не было. И шаблоны не нужны ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2021, 16:58 |
|
указатель на std::array
|
|||
---|---|---|---|
#18+
andron81 Скажите , а можно всё же каким-то образом массив объявить и определить из таких указателей на такие массивы std::array < mystruct,N> ??? или это уже невозможно ? Уточните вопрос. Ерунду же написали. Воспринимайте std::array как средство оптимизации. Да, со своими ограничениями. Но такой оптимизации нет в C# или Ява. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2021, 17:16 |
|
указатель на std::array
|
|||
---|---|---|---|
#18+
andron81 PetroNotC Sharp, Ну да. Таких проблем бы не было. И шаблоны не нужны Либо статика либо динамика. А смешивать не всегда хорошо. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2021, 17:16 |
|
указатель на std::array
|
|||
---|---|---|---|
#18+
petrav Уточните вопрос. Ерунду же написали. . По первичному вопросу ответ был получен. Вощникла ла новая мысль. Для этого надо ответить на вопрос можно ли каким то образом Определить массив из вот таких массивов : std::array < mystruct,N> ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2021, 17:28 |
|
указатель на std::array
|
|||
---|---|---|---|
#18+
можно конечно array<Circle, 10> a2; и даже так можно array<string, n> aa; ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2021, 17:35 |
|
указатель на std::array
|
|||
---|---|---|---|
#18+
andron81 petrav Уточните вопрос. Ерунду же написали. . По первичному вопросу ответ был получен. Вощникла ла новая мысль. Для этого надо ответить на вопрос можно ли каким то образом Определить массив из вот таких массивов : std::array < mystruct,N> Можно. Как и с любым другим типом элемента массива. А по первичному вопросу могу предложить следующее: Код: plaintext 1. 2. 3. 4. 5. 6. 7.
doItInner() можно будет разместить в .cpp. Это, конечно, компромисс... ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2021, 17:36 |
|
|
start [/forum/topic.php?fid=57&msg=40073167&tid=2017206]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
32ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 151ms |
0 / 0 |