std::map<std::string, Person>()
时间: 2024-03-04 18:46:53 浏览: 60
std::map<std::string, Person> 是C++标准库中的一个关联容器,它提供了一种将键值对进行存储和访问的方式。在这个特定的例子中,std::map<std::string, Person> 是一个以字符串作为键,Person 对象作为值的映射。
Person 可以是一个自定义的类,表示一个人的信息。在这个映射中,每个字符串键都与一个对应的 Person 对象相关联。通过使用键来访问和操作映射中的值,可以实现高效的查找和插入操作。
使用 std::map<std::string, Person>,你可以根据字符串键来查找和访问对应的 Person 对象。例如,你可以使用以下方式向映射中插入一个键值对:
std::map<std::string, Person> myMap;
Person p1("John", 25);
myMap["John"] = p1;
这样,你就将一个名为 "John" 的字符串键与一个名为 p1 的 Person 对象相关联了。你可以通过以下方式访问该对象:
Person retrievedPerson = myMap["John"];
这样,retrievedPerson 就是与键 "John" 相关联的 Person 对象。
相关问题
function( std::map<std::string, Person>())
std::map<std::string, Person>() 是一个函数的声明,它返回一个 std::map 类型的对象,该对象的键是字符串类型,值是 Person 类型。这个函数可以用来创建一个空的 std::map 对象,并将其作为返回值。
std::map 是 C++ STL(标准模板库)中的一个关联容器,它提供了一种键值对的映射关系。在这个例子中,std::string 是键的类型,Person 是值的类型。你可以使用该函数创建一个空的 std::map 对象,并在需要时向其中添加键值对。
相关问题:
1. 什么是 std::map?
2. 如何向 std::map 中添加键值对?
3. 如何访问 std::map 中的元素?
4. std::map 和其他容器有什么不同之处?
#include<iostream> #include<string> #include<vector> #include<map> #include<iomanip> #include <list> using namespace std; class item { public: string name;//书名 string item_type;//项目类型 bool Register;// }; //杂志类 class magazine :public item//类的继承 { string Type; string Writer; }; //MusicCd类 class MusicCd :public item { string Singer; }; //电影类 class Movie :public item { string Type; string Director; string Actor; }; //书籍类 class Book : public item { public: Book() { borrow_flag = false; } //无参构造函数 Book(string name, string num, string auther) :name(name), num(num), auther(auther) { borrow_flag = false; } //有参构造函数 void setReader(string reader, int lcn, string data); //设置读者 void setInfo(string name, string num, string auther); //设置书籍信息 string getName() { return name; } string getNum() { return num; } string getAuther() { return auther; } bool getBorrow_flag() { return borrow_flag; } string getReader() { return reader; } int getLcn() { return lcn; } string getData() { return data; } bool isBorrow() { return borrow_flag; } //判断书籍是否借出 void setBorrow_flag(bool b) { borrow_flag = b; } void showInfo(); //显示数据信息 private: string name; //书名 string num; //编号(唯一标示) string auther; //作者 bool borrow_flag; string reader; //读者 int lcn; //借书证号 string data; //借书日期 }; //DVD电影类 class DVD :public Movie { }; //蓝光电影类 class Blue_ligh :public Movie { }; //用户 class Person { public: string Name; string Adress; list<item> Regist_items; }; void Book::setReader(string reader, int lcn, string data) { borrow_flag = true; this->reader.assign(reader); this->lcn = lcn; this->data.assign(data); } void Book::setInfo(string name, string num, string auther) { this->name.assign(name); this->num.assign(num); this->auther.assign(auther); } void Book::showInfo() { cout << "书籍名称:" << setiosflags(ios_base::left) << setw(56) << name << endl << "书籍编号:" << setw(56) << num << endl << "书籍作者:" << setw(56) << auther << endl;//setw()输出字符宽度 if (borrow_flag) { cou
t << "借书人:" << setw(56) << reader << endl << "借书证号:" << setw(56) << lcn << endl << "借书日期:" << setw(56) << data << endl; } else { cout << "该书籍未被借出" << endl; } } int main() { Book b1("C++ Primer", "001", "Lippman"); b1.showInfo(); b1.setReader("Tom", 123456, "2022-05-01"); b1.showInfo(); return 0; }
这段代码定义了一个图书管理系统的基本功能,其中包括了不同类型的物品类(杂志类、音乐CD类、电影类、书籍类、DVD电影类、蓝光电影类),以及用户类。其中,书籍类中包括了书籍的名称、编号、作者等属性,并且可以设置借书人、借书证号和借书日期等信息。在主函数中,定义了一本书籍,并且展示了其基本信息,以及设置了借书人、借书证号和借书日期等信息,并且再次展示了其信息。
阅读全文