2015-12-01 5 views
0

У меня есть класс шаблонов под названием Куча. Моя проблема в том, что я хочу реализовать функцию вставки внизу. Но я не могу достичь переменной-члена вектора Values. Когда я пишу значения [hole/2] .tall, он не может дотянуться до него (высокая переменная не появляется сразу после написания точки). Так может кто-нибудь объяснить это?Нет элементов для вектора structs

template <class Comparable> 
class Heap 
{ 
... 
private: 
// I have this vector 
vector <heightNode <Comparable>> Values 

}; 

template <typename Comparable> 
struct heightNode 
{ 
    Comparable tall; 
    Comparable label; 

    heightNode(const Comparable & t = Comparable(), const Comparable & la = Comparable()): tall(t),label(la) {} 

    heightNode(const heightNode & rhs): tall(rhs.tall),label(rhs.label){} 
}; 


template <class Comparable> 
void Heap <Comparable>:: insert (const Comparable & value, const int & label) 
{ 
    if(isFull()) 
    { 
     cout <<"Heap is Full"; 
    } 
    else 
    { 
     ++currentSize;//hole is an index we will put it to the last point in the vector. 
     for(int hole=currentSize; hole>1 && (value > Values[hole/2].tall)); hole/=2) 
     { 

     } 
    } 
} 
+0

Есть ли какая-либо ошибка компиляции, или это просто проблема с автозавершением IDE, что она не показывает, что элемент существует («высокая переменная не появляется сразу после написания точки»)? – Petr

+0

На самом деле я не помню ошибку. Теперь я исправлю некоторые из них. Но прежде, чем это дало мне некоторую ошибку, как будто она не может превратить что-то в нечто. Но теперь это не дало ошибки. Но он по-прежнему не выполняет его автоматически. – gunescelil

ответ

1

Это

for(int hole=currentSize; hole>1 && (value > Values[hole/2].tall)); hole/=2) 

содержит излишек круглой закрывающей скобки; сделайте это

for (int hole=currentSize; hole>1 && (value > Values[hole/2].tall); hole/=2) 
+0

Я исправил его, но это не настоящая проблема. – gunescelil

+0

@gunescelli: А как насчет «настоящей» проблемы здесь? Это явно синтаксическая ошибка в коде. –

+0

Да, вы правы. Визуальная студия не показывает участников, когда класс шаблона находится в таком положении. – gunescelil