Форум программистов, компьютерный форум CyberForum.ru

Можно ли на С++ как-то свернуть стек для выхода из рекурсии, а не последовательно выходить из нее? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Выручайте друзья http://www.cyberforum.ru/cpp-beginners/thread186458.html
Вопрос в следующем. У меня есть EXEшная фаил который работает под Windows Mobile, в работе этой программы мне надо отключить функцию "поверх всех окон" ( т.е. не могу ее свернуть). В одном из режимов работы при попытке сворачивания программа сварачивается на секунду и снова всплывает. Помогите кто может поправить ее.
C++ Перевод чисел и разных систем Доброго всем времени суток задали задачку мне,а как решить не знаю,мне нужно сделать программу перевода числе из двуичной системы в десятиричную.Самая больая проблема,что мы только начали курс по С++ и всё ,что я находил похожее есть решением моей задачи,но так как этого ещё не изучали мне не зачтут,подскажите как сделать её на очень низком уровне. Я тут думал мне обьязательно для решения этой... http://www.cyberforum.ru/cpp-beginners/thread186455.html
C++ Рефлекшн
Какие средства для рефлекшена есть в С++. Я понимаю, что никаких. Но может все же можно как-нибудь исхитрится. Предлагайте любые, даже самые немыслимые, способы. Заранее спасибо. PS: другие языки не предлагать.
Очередь C++
Задача проги сделать очередь, по сути прога написана по лекции, но выдает ошибки с преобразованием параметра, понимаю, что ошибки глупые, но не могу вспомнить как их решить #include "stdafx.h" #include "string.h" #include "iostream" #include "conio.h" #include "locale.h" using namespace std; int const N=10;
C++ О одномерном массиве http://www.cyberforum.ru/cpp-beginners/thread186448.html
Доброго времени суток! Наставте на путь истинный, прошу!)Завтра сдавать, а прога никакущая... Задача: задан массив М1 вещественных чисел. Необходимо сформировать массив М2, в который войдут элементы массива М1, которые меньше соседних элементов. Вот что у меня пока есть: #include "stdafx.h" #include "conio.h" #include "iostream"; using namespace std;
C++ Составить строку в обратном порядке ввести две строки найти в каждой из них максимум симвалов.составить из них строку в обратном порядке. очень нужна помощь! спасибо! подробнее

Показать сообщение отдельно
Zilon
5 / 5 / 0
Регистрация: 05.11.2010
Сообщений: 60

Можно ли на С++ как-то свернуть стек для выхода из рекурсии, а не последовательно выходить из нее? - C++

05.11.2010, 01:14. Просмотров 1109. Ответов 12
Метки (Все метки)

Вот такой пример кода:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
QuickSort::QuickSort(void)
{
    deeps = 0;
    needsShuffl = false;
}
 
QuickSort::~QuickSort(void)
{
}
 
#define MAX_DEEPS 500
 
QuickSort::sort(int left, int right)
{
    deeps++;
    if(right - left <= 3)
    {
        //sort 3 elements
        deeps--;
        return;
    }
    
    if(deeps >= MAX_DEEPS)  //stack overflow
    {
        needsShuffl = true;
        return;
    }
 
    //...перестановки
    //опред. новые граници l1, l2, r2
    sort(l1, l2 - 1);
    if(needsShuffl) //!!! Хотелось бы избеать лишних проверок!
        return;
 
    sort(l2, r2);
    if(needsShuffl) //!!! Хотелось бы избеать лишних проверок!
        return;
 
    deeps--;
}
После установки needsShuffl в нужно закончить сортировку вернуться наверх.
Но как то жаба давит ради редчайшей ситуации (max_deeps == 500) такой проверкой деоптимизировать свой код.
Есть 2 хитрожопых варианта:
1. Сделать вставку на asm и запомнить смещение вначале. А потом если что с помощью второй вставки вернуться. Но помоему это ДИКО опасно.
2. Сделать delete this (о чем то таком писала Алена++) и как то передать управление другому классу контролеру. ..Хз как такое извращение сделать.
Что посоветуете?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 23:37. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru