2013-07-17 2 views
3

Я создаю структуру данных, но когда я пытаюсь скомпилировать, я получаю сообщение об ошибке, заявляя, что я не указал этот тип набора, который я инициализирую.C++ Не правильно компилировать

Я работаю с библиотекой NTL, которая используется для больших чисел.

Это мой код:

#include <set> 
#include ... 

NTL_CLIENT 

using namespace std; 
using namespace NTL; 

const RR ZERO = to_RR(0); 
const RR ONE = to_RR(1); 
const RR TWO = to_RR(2); 

class tenTree 
{ 
    public: 
     tenTree(string newName = "", int newLevel = 0); 
     ~tenTree(); 
     void put(string prefix, RR power); 
     bool get(string prefix, RR & output); 
     void display(int depth); 
     bool isKnown(RR power){return (powers.find(power) != powers.end());}; 
    private: 
     tenTree* children [10]; 
     set<int> powers; 
     int level; 
     string name; 
     bool child[10]; 
}; 

Когда я пытаюсь скомпилировать возвращается с ошибкой, говоря:

twoPow.cpp:47: error: ISO C++ forbids declaration of \u2018set\u2019 with no type
twoPow.cpp:47: error: expected \u2018;\u2019 before \u2018<\u2019 token
twoPow.cpp: In member function \u2018bool tenTree::isKnown(NTL::RR)\u2019:
twoPow.cpp:44: error: \u2018powers\u2019 was not declared in this scope

Есть ли что-то, что я здесь отсутствует?

+2

Я предполагаю, что это файл заголовка. Plase ** никогда не делает 'использование пространства имен ...;' в файле заголовка. – chris

+4

Да, шлепните std :: на там ... – jdero

+0

К сожалению, моя школа заставляет нас поместить весь наш код в один файл. Это не заголовок. – Schuyler

ответ

0

Это был вопрос вопроса. Все, что мне нужно было сделать, это добавить std :: перед набором и правильно скомпилировать его.

Смежные вопросы