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