给定一个ListItem类,使用内置列表类型完成main(),以创建一个名为shoppingList的链表。程序应该从输入(以-1结尾)读取项目,将每个项目添加到shoppingList,并使用PrintNodeData()函数输出shoppingList中的每个项目。
例如,如果输入为:milk bread eggs waffles cereal -1
输出为:milk bread eggs waffles cereal
我的代码:
#include "ListItem.h"
#include <string>
#include <list>
#include <iostream>
#include <iterator>
using namespace std;
int main ()
{
// TODO: Declare a list called shoppingList of type ListItem
list<ListItem>shoppingList;
string item;
// TODO: Read inputs (items) and add them to the shoppingList list
// Read inputs until a -1 is input
do
{
getline(cin, item);
if(item[item.length()-1] == -1)
break;
else
shoppingList.push_back(ListItem(item));
}
while (true);
// TODO: Print the shoppingList list using the PrintNodeData() function
void PrintNodeData();
return 0;
}
列表项.h
#ifndef LISTITEMH
#define LISTITEMH
#include <string>
using namespace std;
class ListItem {
public:
ListItem();
ListItem(string itemInit);
// Print this node
void PrintNodeData();
private:
string item;
};
#endif
列表项目.cpp
#include "ListItem.h"
#include <iostream>
ListItem::ListItem() {
item = "";
}
ListItem::ListItem(string itemInit) {
item = itemInit;
}
// Print this node
void ListItem::PrintNodeData() {
cout << item << endl;
我尝试使用以下语句循环打印每个值:
for( int i = 0; i < static_cast<int>(shoppingList.size()); i++)
shoppingList[i].PrintNodeData;
1条答案
按热度按时间6vl6ewon1#
只需利用C++的range for循环遍历列表即可:
P.S.既然你是一名学生(这显然是一项作业),那么告诉你放弃
using namespace std
语句可能是值得的,这是一个非常糟糕的做法,一旦你的项目变得更加复杂,它可能会导致函数别名,只要养成习惯,在你的标准库调用前面加上std::
,现在你正在学习,你会更安全