Использование списка STL структуры в C ++ - PullRequest
0 голосов
/ 12 января 2011

Я знаю, что, возможно, я делаю здесь что-то непростительно глупое, но по какой-то причине мой код не скомпилируется, и я не знаю почему.

#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

И проблема, как представляется, не из-за структуры, как яЯ тоже попытался составить список целых, и это тоже не сработает.

Я получаю следующие ошибки: -

синтаксическая ошибка: отсутствует ';'перед '<' и указателем отсутствующего типа - предполагается int. </p>

(оба в строке, в которой я пытаюсь объявить список)

Так что же здесь невероятно глупого я пропускаю?: 3

Ответы [ 3 ]

3 голосов
/ 12 января 2011

Класс list определен в пространстве имен std, поэтому вы должны либо сделать это:

std::list<square> workingset;

Или это

using namespace std;
list<square> workingset;
2 голосов
/ 12 января 2011

Поставьте std:: перед list<square> workingset;


, вы можете просто включить using namespace std;, но это не очень хорошая идея, если это в заголовочном файле.

0 голосов
/ 22 января 2014

Кроме того, вы не можете использовать 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();
}
...