Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > C++ > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Здесь нужно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 19.06.2013, 13:20   #1
shilovec5377
Форумчанин
 
Аватар для shilovec5377
 
Регистрация: 29.06.2011
Сообщений: 117
Вопрос найти max и min в стеке

Всем привет. Подскажите пожалуйста, как найти max и min в стеке.
Код:
#include <iostream>
#include <stack>
#include <cstdlib>
#include <ctime>
  
using namespace std;
  
template <typename T>
void print_stack(std::stack<T> &s)
{
    if (!s.empty()) {
        T top = s.top();
        s.pop();
        cout << top << endl;
        print_stack(s);
        s.push(top);
    }
}
  
int main()
{
    srand(time(0));
  
    stack<int> st;
     
    double max = 50.0, min = -50.0;
     
    for (size_t i = 0; i != 100; i++)
        st.push( (max - min) * ( (double)rand() / (double)RAND_MAX ) + min );
  
    print_stack(st);
    return 0;
}
shilovec5377 вне форума   Ответить с цитированием
Старый 19.06.2013, 15:51   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,840
По умолчанию

Ну как классика: поизвлекать в цикле из стека.
Или тебе нужно стек не разрушать?
I'm learning to live...
Stilet вне форума   Ответить с цитированием
Старый 19.06.2013, 18:03   #3
Igor95
Форумчанин
 
Регистрация: 03.01.2013
Сообщений: 388
По умолчанию

Существуют определенные алгоритмы STL... ими и пользуйтесь
Igor95 вне форума   Ответить с цитированием
Старый 25.06.2013, 09:46   #4
el_gato_de_Ch
Пользователь
 
Регистрация: 21.05.2013
Сообщений: 13
По умолчанию

1. ИМХО для генерации случайных чисел гораздо проще заводить не MIN MAX а пользоваться rand() % <диапазон_случ_величины>

2. Стек вообще предназначен несколько для других задач, нежели поиска в нём наибольшего и наименьшего значений. Но как вариант, Вы можете это делать на этапе заполнения стека, например завести структуру вида

Код:
struct my_stack
{
  stack<int> data;
  int max_value;
  int min_value;

  void print_stack();
};
el_gato_de_Ch вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
списке целых чисел все элементы между max и min заменить полусуммой max и min Roman one C/C++ Базы данных 0 20.12.2012 12:14
Найти max,min среди нечетных Korvax Помощь студентам 1 24.04.2012 15:26
двумерный массив, найти max min Koksa C# (си шарп) 1 10.10.2011 15:05
найти min max в массиве lubafffka Assembler - Ассемблер 4 08.06.2011 15:48
Как найти max и min элементы матрицы????? ЕвгениуS Помощь студентам 19 02.03.2008 20:47


02:58.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.