【发布时间】:2014-05-30 20:42:28
【问题描述】:
我做了一个简单的函数调用,它显示了一个我有值的列表的内容。这是函数定义:
void display_list(list<string>*type_list)
{
cout << "You made a function call" << endl;
for (list<string>::iterator dis = type_list.begin(); dis != type_list.end(); ++dis)
{
cout << *dis;
cout << "\n";
}
}
所有这一切都应该让我更轻松,因为在我的代码中有很多次我必须显示列表的内容,所以我试图让自己更轻松并调用函数所以我要做的就是调用函数:
display_list(&list_name_here);
虽然一切正常,但正如您所见,我添加了一个测试“cout”以确保函数调用正常工作,但它不显示内容,并且我收到一个突出显示的错误
type_list
然后弹出错误,说表达式必须具有类类型?
现在我确实将代码更改为如下所示:
void display_list(list<string>*type_list)
{
cout << "You made a function call" << endl;
list<string> gen;
*type_list = gen;
for (list<string>::iterator dis = gen.begin(); dis != gen.end(); ++dis)
{
cout << *dis;
cout << "\n";
}
}
在这种形式中,我将 type_list 取消引用到一个局部变量中,然后照常进行。由于此方法确实消除了类类型错误,但是当我编译并运行它时,列表中没有显示任何内容。 list 真的很简单,所以它应该只显示 10 个值。
现在,如果您要问,将原始算法放在我的主代码中并且我用适当的列表名称替换 type_list 时,代码可以完美地工作并设计。显示列表的内容。所以我知道我的错误不在其中。
任何人都可以对此有所了解吗?
【问题讨论】:
标签: c++ list pointers iterator