list的编译器错误

发布于 2024-10-24 03:10:12 字数 436 浏览 1 评论 0原文

我正在尝试按照此处的示例创建一个字符串列表。下面给出了语法错误:

private: list<string> images;

错误(全部在上面声明所在的行上):

syntax error : missing ';' before '<'
missing type specifier - int assumed. Note: C++ does not support default-int
unexpected token(s) preceding ';'

它位于一个类中,除了它之外只有一个构造函数,并且没有它它也可以正常编译。我做错了什么?

I'm trying to create a list of strings, following the example here. This below gives me syntax errors:

private: list<string> images;

The errors (all on the line where the above declaration is):

syntax error : missing ';' before '<'
missing type specifier - int assumed. Note: C++ does not support default-int
unexpected token(s) preceding ';'

It's in a class with only a single constructor besides it, and it compiles fine without it. What am I doing wrong?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

淡莣 2024-10-31 03:10:12

您是否同时#include? 从 namespace std 导入名称 liststring

using namespace std;

另外,您是否通过编写或

using std::list;   using std::string;

您收到的错误与名称不一致易于访问,所以这是我最好的猜测。

编辑:由于这是在头文件中,因此您不应该使用上述任何一种结构(感谢 wilhelmtell 指出这是一个头文件!)。相反,您应该将名称完全限定为

private: std::list<std::string> images;

这样,编译器确切地知道在哪里查找 liststring

Did you #include both <list> and <string>? Also, did you import the names list and string from namespace std by writing either

using namespace std;

or

using std::list;   using std::string;

The error you're getting is consistent with the names not being accessible, so this is my best guess.

EDIT: Since this is in a header file, you should not be using either of the above constructs (thanks to wilhelmtell for pointing out that this is a header file!). Instead, you should fully-qualify the names as

private: std::list<std::string> images;

This way the compiler knows exactly where to look for list and string.

冷夜 2024-10-31 03:10:12

您需要使用 命名空间

键入 std::list 或在 #include之后添加 using namespace std; >#include 指令。

一个简单的工作程序:

#include <list>
#include <string>
using namespace std;
int main ( int, char ** )
{
    list<string> strings;
    strings.push_back("1st string");
}

You need to qualify the list and string types with their namespace.

Either type std::list<std::string> or add using namespace std; after the #include <string> and #include <list> directives.

A simple working program:

#include <list>
#include <string>
using namespace std;
int main ( int, char ** )
{
    list<string> strings;
    strings.push_back("1st string");
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文