Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.04.2011, 18:03   #1
blacktener
Пользователь
 
Регистрация: 15.12.2010
Сообщений: 78
По умолчанию очередь

Попробовал сделать очень простую задачку на реализацию очереди. функция queue:ut(int) у меня ставит на верхнюю ступень число и смещает вверх на 1 верхнюю ступень(она у меня обозначена in) . функция queue:get() должна как бы вынимать нулевой елемент и смещать все остальные вниз. Но почему то эта фигня у меня работает не как очередь а как стек... вот помогите найти ошибку
Код:
#include <iostream>

using namespace std;

class queue
{
 private:
         static const int LIMIT = 10;
         int q[LIMIT];
         int in; 
 public:
        queue() : in(0)
        {}
        int get()
        {
         if (in>0)
         {
         int ret = q[0];
         in--;
         for (int i=0;i<in;i++)
         q[i] = q[i+1];
         return ret;    
         }
         else
         {
          cout << "stack has 0 elements" << endl;
          return 0;   
         }
        }    
        void put(int input)
        {
         if (in<LIMIT) q[in] = input;
         else
         cout << "overload!" << endl;   
         in++;
        }
};

int main()
{
 queue x;
 x.put(1);
 x.put(3);
 x.put(6);
 cout << x.get() << endl << x.get() << endl << x.get() << endl;
 system("PAUSE");
 return 0;   
};
blacktener вне форума Ответить с цитированием
Старый 18.04.2011, 02:49   #2
daunito
Пользователь
 
Регистрация: 01.03.2008
Сообщений: 25
По умолчанию

все у тебя правильно работает. У тебя ошибка возникает из-за вывода. Выводи значения так
Код:
cout << x.get() << endl;
cout << x.get() << endl;
cout << x.get() << endl;
просто в каком порядке cout будет вызывать функции непонятно. Поэтому вызывай их сам и будет тебе счастье
daunito вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Очередь С++ phantom4eg Фриланс 1 25.04.2010 00:54
Очередь Си savra Помощь студентам 1 22.04.2010 18:48
Очередь Си svetikzo Помощь студентам 0 23.01.2010 10:03
Очередь skiffter Помощь студентам 2 03.12.2009 17:39
Очередь Юлькин Общие вопросы C/C++ 4 30.05.2009 16:00