簡體   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