在C++中定义一个指向列表的指针

9

我是C++编程的新手,我在尝试定义一个指向列表的指针时遇到了麻烦。这是我正在尝试使用的代码:

list<int>* pl;

错误:

/home/julian/Proyectos Code::Blocks/pruebas/main.cpp|17|error: expected type-specifier before ‘list’|

是否可以定义指向列表的指针?我需要一个返回列表指针的函数。

非常感谢


2
你是否在代码中使用了 #include <list>using namespace std;?看起来它不知道 list 是什么。 - James M
4
你确定你真的需要一个指针吗? - Greg Hewgill
2
@Julian 为了进一步说明,如果您有一个现代编译器(支持C++11),则可以返回std::list作为值,而不会产生任何复制成本,因为std::list和所有其他std数据结构都具有移动构造函数。在C++11之前,您可以通过引用传递std::list而不是返回指向它的指针。 - Benj
3个回答

12

你需要包含list头文件并限定名称list

#include <list>

std::list<int> *p;

或者:

using std::list;
list<int> *p;

2
@Benj 它会不加区分地导入太多的东西,从而打开冲突的大门 - 这正是命名空间旨在解决的问题。 - cnicutar

3

list 位于 std 命名空间中,因此请尝试执行 -

std::list<int>* pl; 

我在代码的另一部分有一个错别字。现在它正在工作,使用我之前发布的代码。你知道我能删除原来的问题吗?无论如何,谢谢。 - Julián Muriel Tejo Rodríguez
你可以这样做。但我不确定你是否需要足够的声望来删除自己的问题。 - Mahesh

1

请尝试以下方法:

std::list<int>* pl;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接