|
|
|
динамический стек !!!!!!!!!!!!!!!!!!!!!!!
|
|||
|---|---|---|---|
|
#18+
как задать динамически стек размером 2n, где n-некоторая длина? пишу так: T *stack=new T[2*n]; // sizeof(stack) всегда равен 4 (знаю, это выделяется под тип int) А как сделать чтобы итоговая величина зависела от величины n? например если у меня n=10 000? если пишу например так: T stack[20 000]; то выходит примерно то что нужно (sizeof(stack)=80000), только это цифра взята из головы (я про 20 000), а мне нужна привязка к цифре n. как написать эту комманду? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2007, 11:43 |
|
||
|
динамический стек !!!!!!!!!!!!!!!!!!!!!!!
|
|||
|---|---|---|---|
|
#18+
Вы создаете указатель на тип, поэтому: Код: plaintext 1. 2. Если вы хотите знать размер массива не делая это вручную используйте std::vector. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2007, 11:48 |
|
||
|
динамический стек !!!!!!!!!!!!!!!!!!!!!!!
|
|||
|---|---|---|---|
|
#18+
111111122222как задать динамически стек размером 2n, где n-некоторая длина? пишу так: T *stack=new T[2*n]; // sizeof(stack) всегда равен 4 (знаю, это выделяется под тип int) А как сделать чтобы итоговая величина зависела от величины n? например если у меня n=10 000? если пишу например так: T stack[20 000]; то выходит примерно то что нужно (sizeof(stack)=80000), только это цифра взята из головы (я про 20 000), а мне нужна привязка к цифре n. как написать эту комманду? sizeof(stack) == 4 поскольку это указатель. а сколько в нем элементов ты должен сам отлежитвать. ну если мимо попадешь, будет ошибка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2007, 11:49 |
|
||
|
динамический стек !!!!!!!!!!!!!!!!!!!!!!!
|
|||
|---|---|---|---|
|
#18+
А вектор использовать не судьба ? Или просто руку набиваем ??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2007, 11:57 |
|
||
|
динамический стек !!!!!!!!!!!!!!!!!!!!!!!
|
|||
|---|---|---|---|
|
#18+
руку набиваем :) что бы понять механизм, нужно разобраться досканально как это все работает. и все же... как сделать то что я спросил НЕ используя вектор? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2007, 12:17 |
|
||
|
динамический стек !!!!!!!!!!!!!!!!!!!!!!!
|
|||
|---|---|---|---|
|
#18+
руку набиваем :) что бы понять механизм, нужно разобраться досканально как это все работает. и все же... как сделать то что я спросил НЕ используя вектор? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2007, 12:19 |
|
||
|
динамический стек !!!!!!!!!!!!!!!!!!!!!!!
|
|||
|---|---|---|---|
|
#18+
111111122222 wrote: > как сделать то что я спросил НЕ используя вектор? Что-то я не понимаю, в чем проблема. :-\ есть new, delete, memcpy а так же malloc, realloc и free. Класс-обертку написать несложно. Что конкретно непонятно то? Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2007, 12:23 |
|
||
|
динамический стек !!!!!!!!!!!!!!!!!!!!!!!
|
|||
|---|---|---|---|
|
#18+
Просто для стека нужен класс-обертка а в нем поля - текущий размер и максимально возможный размер. (size и capacity), ну и массив размера capacity, куда элементы дописываются. При выполнении условия size==capacity массив, например, увеличивается вдвое или на фиксированное количество элементов. В чем проблема-то? Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2007, 12:25 |
|
||
|
динамический стек !!!!!!!!!!!!!!!!!!!!!!!
|
|||
|---|---|---|---|
|
#18+
проблемма в том что я не понимаю как это написать. как знал - уже пробовал, как по другому - не знаю. разве это не одной командой решается? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2007, 12:31 |
|
||
|
динамический стек !!!!!!!!!!!!!!!!!!!!!!!
|
|||
|---|---|---|---|
|
#18+
Ага, одной :) Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2007, 12:43 |
|
||
|
динамический стек !!!!!!!!!!!!!!!!!!!!!!!
|
|||
|---|---|---|---|
|
#18+
111111122222проблемма в том что я не понимаю как это написать. как знал - уже пробовал, как по другому - не знаю. разве это не одной командой решается? В С++ нет. Для винды Celebrum как-то через смещение назад делал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2007, 12:50 |
|
||
|
динамический стек !!!!!!!!!!!!!!!!!!!!!!!
|
|||
|---|---|---|---|
|
#18+
111111122222проблемма в том что я не понимаю как это написать.почитай, как написан вектор, там всё есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2007, 16:57 |
|
||
|
динамический стек !!!!!!!!!!!!!!!!!!!!!!!
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2007, 17:00 |
|
||
|
динамический стек !!!!!!!!!!!!!!!!!!!!!!!
|
|||
|---|---|---|---|
|
#18+
111111122222 wrote: > проблемма в том что я не понимаю как это написать. как знал - уже > пробовал, как по другому - не знаю. разве это не одной командой решается? Все равно не понимаю вопрос. Используйте std контейнеры тогда. Или realloc. Или сделайте свой темплейтный класс под стек, основанный на списках, а потом пользуйтесь им, как "одной командой" (реализация вряд ли больше сотни строк будет). Сделайте библиотеку. Посмотрите в нете готовые классы. Какие ещё варианты могут быть? Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2007, 17:06 |
|
||
|
|

start [/forum/topic.php?fid=57&fpage=289&tid=2028642]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
55ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 249ms |
| total: | 389ms |

| 0 / 0 |
