У меня есть следующий код ниже. < /p>
#include
#include
#include
template
class Comparator {
public:
bool operator()(T p, T q) const {
return p < q;
}
};
template
class VectorCompleteTree {
public:
typedef typename std::vector::iterator Position;
VectorCompleteTree(): V(1) {};
int size() const { return (int)(V.size() - 1); }
Position left(const Position& p) { return pos(2 * idx(p)); }
Position right(const Position& p) { return pos(2 * idx(p) + 1); }
Position parent(const Position& p) { return pos(idx(p) / 2); }
bool hasLeft(const Position& p) { return 2 * idx(p)
Вопрос:
У меня нет ошибки компиляции. Следовательно, мне нравится знать в пункте 1, почему итератор P разрешено назначать, когда параметр функции UpHeap для P является PONM Position &?>
Подробнее здесь: https://stackoverflow.com/questions/797 ... e-assigned