地图中的地图 - C++

Map in map - C++

我正在尝试读取具有以下格式的 txt 文件:

Book_Name,price,length,genere

而且我不确定我应该使用什么数据库。 因为我刚刚在 python 完成了一个项目,做了一些类似于从文件中读取的事情,所以我想我会在这里 [python definitions] 在字典中使用,其中每个键都是书名和每个值将是另一本字典。 在内部字典中,键将被固定 [在我阅读文本的第一行后,我可以将其保存在列表中,或者在我第一次创建容器时在第一个位置插入固定顺序] 意思是 'price' 和 'length' 将永远是键,对于每个键,我将从文本中读取它自己的值。

我的问题是我如何在 CPP 中构建这样的东西,在这种情况下我应该使用 multimap 还是朝那个方向思考?

C++ 是一种面向对象的语言,好好利用它吧!

您可以创建自己的书籍对象! (如果你所做的只是存储这些值,你可以使用结构)

struct Book {
    std::string name;
    double price;
    unsigned length;
    std::string genre;

    Book(const std::string &name, double price, unsigned length, const std::string &genre)
        : name(name), price(price), length(length), genre(genre) { }
}

所以现在当你想制作一本新书时,你可以这样做:

Book b("Wise Man's Fear", 24.99, 1000, Fantasy);
std::cout << "My book is: " << b.name << std::end;

我想我实际上会用一个 class 来表示这个。

class Book
{
public:
    Book() : m_name{}, m_price{}, m_length{}, m_genre{} {}

    Book(std::string const& name, double price, unsigned long length, std::string const& genre)
    : m_name{name}, m_price{price}, m_length{length}, m_genre{genre}
    { }       

private:
    std::string m_name;
    double m_price;
    unsigned long m_length;
    std::string m_genre;
};

然后您可以使用 std::map(类似于 Python dict)按书名查找图书

std::map<std::string, Book> library;