【问题标题】:Using an STL List of a Struct in C++在 C++ 中使用结构的 STL 列表
【发布时间】:2011-01-12 10:55:58
【问题描述】:

我知道我可能在这里做了一些不可原谅的愚蠢的事情,但由于某种原因我的代码无法编译,我不知道为什么。

#include <iostream> 
#include <list> 

//A queue for the working set
//x,y co-ords of the square, path length so far 
struct square {
 int x;
 int y; 
 int path_length;
} square; 

list<square> workingset; 

我还有其他代码似乎以完全相同的方式创建列表 -

#include <iostream>
#include <list>   //List class library 
#include <algorithm> //STL algorithms class library (find) 

using namespace std;

list<int> numberlist; //Creates my list

问题似乎不是因为结构,因为我也尝试过制作整数列表,但它也不起作用。

我遇到的错误是 -

语法错误:缺少';'在 '

(都在我试图声明列表的那一行)

那么我在这里错过了什么非常愚蠢的事情? :3

【问题讨论】:

标签: c++ list stl struct


【解决方案1】:

list 类在 std 命名空间中定义,因此您必须这样做:

std::list<square> workingset;

或者这个

using namespace std;
list<square> workingset;

【讨论】:

    【解决方案2】:

    std::放在list&lt;square&gt; workingset;前面


    你可以只包含using namespace std;,但如果这是在头文件中,这不是一个好主意。

    【讨论】:

    • 是的,这是一个很小的程序,所以使用命名空间 std;应该没问题 :) 谢谢你的帮助!
    【解决方案3】:

    此外,您不能将square 用作结构的名称以及变量的名称。

    以下代码应该无法编译:

    struct square {
     int x;
     int y; 
     int path_length;
    } square; 
    
    square getSquare
    {
       return square();
    }
    

    试试这个:

    struct square {
     int x;
     int y; 
     int path_length;
    } aSquare; 
    
    square getSquare
    {
       return square();
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-12-10
      • 1970-01-01
      • 1970-01-01
      • 2014-10-18
      • 2010-11-08
      • 1970-01-01
      • 2014-04-05
      相关资源
      最近更新 更多