[英]Is there a way to make a queue using array of structs using c++?
我想知道如何将结构数组放入队列中。 例如结构是:
struct Book
{
string name;
int bookID;
string dateRent;
};
book list[5]; //declare array of structs
如何将结构作为队列? 队列应该包含所有三个数据。
std::queue<Book> q;
Book b1 = {"Book One", 1, "01012020"};
Book b2 = {"Book Two", 2, "01012021"};
q.push(b1);
q.push(b2);
Book top_book = q.front();
cout << "top_boook_in_the_queue: " << top_book.name << " " << top_book.bookID << " " << top_book.dateRent << endl;
好吧,如果我理解这一点。 您希望创建结构书的数组。
struct Book
{
string name;
int bookID;
string dateRent;
};
Book arr[10];
这将是 c++ 中给定结构 Book 的 10 个元素的数组。
您也可以像这样创建动态数组
Book* arr;
arr = new Book[10];
您可以访问这样的元素
arr[0].name;
arr[0].bookID;
arr[0].rentDate;
如果您希望创建类似于 FIFO 队列的 c++ 结构,则必须创建类似这样的内容
struct Book
{
string name;
int bookID;
string dateRent;
};
struct BookQueue {
Book arr[10];
int size = 0;
void insert(Book book) {
if (size == 10) return;
for (int i = size-1; i >= 0; i--) {
arr[i + 1] = arr[i];
}
arr[0] = book;
size++;
}
Book remove() {
if (size < 0) return arr[0]; //it should throw error here
size--;
return arr[size];
}
};
注意:这对队列不利,但它是一个结构队列,很简单。 对于初学者。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.