Печать окончательной очереди после выполнения нескольких операций над ней - PullRequest
0 голосов
/ 05 сентября 2018

Я изучаю c ++ и, выполняя следующий код, получаю значение мусора. Я проверил часть алгоритма, и она кажется правильной, но, если это не так, пожалуйста, скажите мне. Я использовал такие функции, как add, чтобы добавить или вставить элемент. , del функция для удаления, пустая функция для очистки очереди и, наконец, у меня есть функция front, работа которой заключается в возвращении front-значения.

#include <iostream>
#include <vector>
#include <string.h>
using namespace std;

class Queue {
    private :

        vector<char> data_;

        int front_, rear_;
    public :
    Queue(): front_(-1),rear_(-1) { data_.resize(20); }

        ~Queue() {};

        int empty() {

            if (front_==rear_) {

                front_ = rear_ = -1 ;
                return 1;
            }
            else
                return 0;
        }
        void add(char x) {

            if (front_ == -1)

                front_ = 0 ;
                rear_=rear_+1;
                data_[rear_]=x;

        }
        void del( ) {front_=front_+1;}


        char front() { return front_ ; }

} ; // End of the class
int main( ) {
    Queue q;
    char str[20];

    cin >> str;
    for (int i = 0; i < strlen(str); ++i)

        q.add(str[i]);

    while (!q.empty()) {

        cout << q.front();

        q.del();
    }

    return 0;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...