我正在尝试按照示例here创建字符串列表。下面给出了语法错误:
private: list<string> images;
错误(所有在上述声明的行上):
syntax error : missing ';' before '<'
missing type specifier - int assumed. Note: C++ does not support default-int
unexpected token(s) preceding ';'
除了它之外,它只在一个只有一个构造函数的类中,没有它就可以编译好。我做错了什么?
答案 0 :(得分:4)
您#include
和<list>
<string>
了吗?此外,您是否通过编写
list
导入了名称string
和namespace std
?
using namespace std;
或
using std::list; using std::string;
您获得的错误与无法访问的名称一致,因此这是我最好的猜测。
编辑:由于这是在头文件中,您不应该使用上述任何一种结构(感谢wilhelmtell指出这是一个头文件!)。相反,您应该将名称完全限定为
private: std::list<std::string> images;
这样编译器就可以确切地知道在哪里查找list
和string
。
答案 1 :(得分:0)
您需要使用namespace对list
和string
类型进行限定。
在std::list<std::string>
和using namespace std;
指令后输入#include <string>
或添加#include <list>
。
一个简单的工作程序:
#include <list>
#include <string>
using namespace std;
int main ( int, char ** )
{
list<string> strings;
strings.push_back("1st string");
}