У меня есть класс шаблонов под названием Куча. Моя проблема в том, что я хочу реализовать функцию вставки внизу. Но я не могу достичь переменной-члена вектора 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)
{
}
}
}
Есть ли какая-либо ошибка компиляции, или это просто проблема с автозавершением IDE, что она не показывает, что элемент существует («высокая переменная не появляется сразу после написания точки»)? – Petr
На самом деле я не помню ошибку. Теперь я исправлю некоторые из них. Но прежде, чем это дало мне некоторую ошибку, как будто она не может превратить что-то в нечто. Но теперь это не дало ошибки. Но он по-прежнему не выполняет его автоматически. – gunescelil