地图中的地图 - 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;
我正在尝试读取具有以下格式的 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;