假设你正在开发一个图书管理系统,你需要设计一个数据结构来表示图书。每本图书包括书名、作者和出版日期。按照出版日期升序排序,即先出版的图书排在前面。 70558 输入: 从键盘输入一个整数n (1 <=n<= 100) ,表示图书数量。然后输入n行,每行包含一本图书的信息:书名(不超过 100个字符)、作者(不超过 100个字符)和出版日期(格式为YYYY-MM-DD),数据之间用空格隔开
时间: 2024-02-15 16:01:16 浏览: 21
一个可能的实现是使用一个结构体来表示图书,然后使用 STL 中的 vector 来存储所有图书,并使用 sort 算法按照出版日期升序排序。
以下是 C++ 代码实现:
```
#include <iostream>
#include <vector>
#include <algorithm>
#include <string>
using namespace std;
// 图书结构体
struct Book {
string title;
string author;
string date;
};
// 比较函数,按照出版日期升序排序
bool compare(Book b1, Book b2) {
return b1.date < b2.date;
}
int main() {
int n;
cin >> n;
vector<Book> books(n);
for (int i = 0; i < n; i++) {
cin >> books[i].title >> books[i].author >> books[i].date;
}
sort(books.begin(), books.end(), compare);
for (int i = 0; i < n; i++) {
cout << books[i].title << " " << books[i].author << " " << books[i].date << endl;
}
return 0;
}
```
首先在主函数中定义一个整数 n,表示图书数量,从键盘输入 n。然后定义一个 vector<Book> 类型的变量 books,用于存储所有图书。使用 for 循环读取 n 行输入,依次将每本图书的信息存入 books 中。
接着使用 sort 算法对 books 进行排序,传入比较函数 compare,该函数按照出版日期升序排序。
最后使用 for 循环输出 books 中所有图书的信息。
比较函数 compare 接受两个 Book 类型的参数 b1 和 b2,比较它们的出版日期,返回较小的那个 Book。注意,这里使用了 string 的比较运算符 < 来比较日期字符串的大小。