У меня есть задание, в котором мне нужно создать программу, которая исследует очереди FIFO. Задача состоит в том, чтобы создать массив, в котором каждый элемент содержит 2 числа x и y. А затем вам нужно иметь методы push, pop и show, которые вставляют новый элемент, удаляют элемент и отображают все текущие элементы в очереди.
Я попытался адаптировать базовую систему очереди к своим потребностям, ноУ меня были проблемы с той частью, где у вас должно быть 2 значения для каждого элемента (x и y).
Моя последняя попытка связана со структурами. Но у меня возникли проблемы с пониманием того, как я буду создавать структуру каждый раз, когда выбрана опция добавления (push) данных. А затем возвращает все значения, которые в данный момент сохранены в массиве структур. Если это даже возможно.
Вот что у меня есть: queue.cpp
#include <iostream>
#include "queue.h"
#include <array>
using namespace std;
queue::queue(){
int length;
cout <<"Queue max length: ";
cin >> length;
cout <<"\n";
int array[length];
capacity = length;
}
void queue::push(){
struct Coordinates{ //And this whole part wont work either cause I need to create a structure before I can enter data into it.
//I assume I need to use a for loop in order to createa strcutre everytype the 'push' method is called?
int x;
int y;
}arr[capacity];
for (i = 0; i<capacity; i++){ //Something like this to createa a struct for each array element?
}
cout << "Please enter the desired values (x, y): ";
cin >> Coordinates.x >> Coordinates.y;
cout <<"\n" << "You entered: " <<Coordinates[1]; //This is obviously wrong, I dont actually get how I will print the structures that are saved in the array? And how will I tell the program to assign the values to the first array element, the second, the third etc..?
}
queue.h:
#ifndef QUEUE_H
#define QUEUE_H
#include <iostream>
class queue
{
public:
queue();
virtual ~queue();
void push();
void pop();
void show() const;
private:
int capacity;
};
#endif // QUEUE_H
Я прошу прощения, если это тожеЯ подумал, что если бы я сократил его, это не имело бы смысла.
Ожидаемый конечный результат должен выглядеть следующим образом:
Please enter the size of the queue: 15
What would you like to do? + (positive being they have to enter two new numbers)
Please enter the coordinates to be saved: 5,4
What would you like to do? + (again)
Please enter the coordinates to be saved: 3,5
What would you like to do? * (star being show method)
(Show method) The current Queue is: {5,4}, {3,5};
What would you like to do? - (negative being dequeue)
(Show method) The current Queue is: {3,5};
What would you like to do? + (positive being they have to enter two new numbers)
Please enter the coordinates to be saved: 7,8
(Show method) The current Queue is: {3,5}; {7,8};
And so forth. I hope this explains the end results.
Любые предложения или указания на то, что я делаю неправильно, будуточень признателен. Спасибо.