繁体   English   中英

有没有办法使用 c++ 使用结构数组创建队列?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM