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

Обойти стек, не удаляя вершин - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Как понять http://www.cyberforum.ru/cpp-beginners/thread879653.html
Здравия желаю всем ! Помогите понять смысл написанного из программы, для чего это сделано и почему ? int action; if ( ! action ) break;
C++ Работа с файлайми Всем доброго времени суток. Копаю С++ дальше есть вопросик по поводу работы с файлами я работаю с файловым текстовым потоком. FILE* myFile; myFile = fopen("test2.txt", "at+"); for(int i = 1; i < 100; i++) { str = "TEST\n"; fwrite(&str, sizeof(string), 1, myFile); } http://www.cyberforum.ru/cpp-beginners/thread879647.html
Зависимость скорости компиляции от подключения к сети C++
Тут такая проблема: когда работал на visual studio 2005 заметил, что когда отключен интернет скорость компиляции падает раз в 10. То, что делалось несколько секунд теперь занимало полминуты. При включении инета все приходило в норму. Решил поставить 2010-ю студию. Там та же проблема. В чем тогда дело? Может, в настройках самого ПК? В гугле ничего об этом не нашел, а знакомые, которым я об этом...
C++ Error LNK2019: ссылка на неразрешенный внешний символ
умелые люди помогите исправить ошибку, сегодня надо сдать класс, подправил и упростил код unrar'a после чего нужно было переделать его под класс, что я и сделал, но вылазит след ошибка: 1>RAR_Decoder.obj : error LNK2019: ссылка на неразрешенный внешний символ _RAROpenArchiveEx в функции "public: int __thiscall RAR_Decoder::decode(void)" (?decode@RAR_Decoder@@QAEHXZ) 1>RAR_Decoder.obj : error...
C++ operator << для указателя http://www.cyberforum.ru/cpp-beginners/thread879619.html
В общем, есть у меня кастомный класс, указатель на который используется практически всеми классами программы. Для самого класса перегружен <<, однако использовать богомерзкую конструкцию *(pointer)<< желания нет никакого. Вроде как есть возможность вне классов перегружать этот оператор, только вот как это сделать?
C++ массив через функцию для начинашек Задан массив целых чисел. Вывести на экран массив, составленный из элементов, не равных минимальному. подробнее

Показать сообщение отдельно
bestpalyer1
-1 / 1 / 0
Регистрация: 20.12.2012
Сообщений: 47
26.05.2013, 20:04     Обойти стек, не удаляя вершин
Ребят, помогите разобраться!

Можно ли обойти стек не удаляя вершин?
Вроде этого?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
void printstack(stack<int>l)
{
    if(l.empty())
    {
        cout<<"Лист пуст"<<endl;
        return;
    }
 
    for(int i=0;i!=l.size();++i)
    {
        cout<<"Элемент: "<<l.top()<<endl;
        *(l.top())-=1; //не корректно изначально
    }
}
Или только так?:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
void printstack(stack<int>l)
{
    stack<int> q;
    q=l;
    if(l.empty())
    {
        cout<<"Лист пуст"<<endl;
        return;
    }
 
    while(!(l.empty()))
    {
        cout<<"Элемент: "<<l.top()<<endl;
        l.pop();
    }
    l=q;
}
Если работать по 2 варианту, то нужно удалять весь первоначальный стек, чтобы не "болталась" лишняя память?
Или как-то можно реализовать данную функцию без использования дополнительного стека?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 23:48. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru