考试C++保存列表的名称属性
exam C++ save name attribute of list
在C++考试期间,我发现我在可能应该相对简单的事情上遇到了一些困难。我想我忽略了我的问题。为了不因在线发布部分考试而遇到麻烦,我将对我遇到麻烦的部分进行非常简单的表示。
期望的是制作一个类myClass
,我可以在其中添加项目item
。然后我应该能够列出我想要的一些项目。列表中能够包含的项目数量应该是无限的。每个列表都应该有一个特定的(唯一的)名称。我还被告知不要为列表创建一个新类,而要自己选择合适的容器。
myClass::myClass(){
itemlist= {};
lists= {};
}
void myClass::addItem(Item &item){
itemlist.emplace_back(item);
}
void myClass::makeList(string listname){
vector <Item> list = {};
// list .name = listname
lists.emplace_back(list);
}
void myClass::addItemToList(string listName, Item &item){
for (int i=0; i<lists.size; i++){
if lists[i].name == listName {
lists.emplace_back(item);
return;
}
}
}
我不知道如何在不为列表创建新类的情况下将名称链接到列表。我想过存储另一个包含列表名称的列表并使用它,但这样做似乎是错误的,因为它们实际上并没有链接。试图查找是否有办法从字符串 listname 参数listname
列表变量,但显然这是不可能的。
至于容器,我选择了一个向量,因为它们可以在其中存储"无限"的数据量。我使用itemlist
来存储曾经添加到myClass
的所有项目,lists
存储所有曾经创建的列表。
如何存储每个列表的名称并使其链接?
我认为命名列表的最简单方法是使用std::unordered_map
http://en.cppreference.com/w/cpp/container/unordered_map
然后,您将能够像这样使用您的列表:
lists["first_list"].push_back(...);
lists["another_list"].size();
lists["create_new_list"] = {};
也许您正在寻找的"将名称链接到列表"是一个std::map
类似的东西std::map<std::string, std::vector<Item>>
相关文章:
- 提升精神气中的序列和列表运算符的属性?
- 从基于属性的列表中返回随机对象
- C 中的属性列表中应该使用什么
- 考试C++保存列表的名称属性
- 根据对象属性从列表中删除对象
- 将对象属性替换为列表
- Boost::p tree - 访问列表中包含的属性树节点
- 是否有活动目录属性的完整列表,以及与LDAP的映射
- BGL:邻接列表为描述符返回错误的边缘属性
- 如何在QML中访问C++对象的列表属性
- 如何根据对象的属性对对象列表进行排序
- 是否可以在初始化列表中使用基类属性
- 解析SVG转换属性的转换列表
- 正在获取ostream模板以打印指针列表中的实例属性
- 无法在列表迭代器中获取sf::Text属性
- Qt:在列表中查找对象的属性
- 从另一个列表中的对象属性创建一个新的值列表
- HDF5 c++:我需要得到组列表,数据集列表,属性列表在HDF5文件
- 如何在MITK中访问图像属性列表和操作
- Qt:在给定的QObject上设置的动态属性列表