class BinarySearchTree
{
struct Node
{
T data;
Node * left;
Node * right;
Node(T key) :data(key), left(nullptr), right(nullptr) {}
};
Node * root;
int size(Node * node);
void printNode(Node*);
void deleteNode(Node*);
void insert(Node * node, Node * nodePtr);
void inorder(Node * root, void(*inorderPtr)(T &)) const;
void preorder(Node * root, void(*preorderPtr)(T &)) const;
void postorder(Node * root, void(*postorderPtr)(T &)) const;
public:
BinarySearchTree();
~BinarySearchTree();
T search(T value);
BinarySearchTree(const BinarySearchTree<T> & source);
const BinarySearchTree<T> & operator = (const Node & other);
void insert(const T);
void print();
int size();
void inorder(void(*output)(T &)) const;
void preorder(void(*preorderPtr)(T &)) const;
void postorder(void(*postorderPtr)(T &)) const;
};
template<class T>
inline T BinarySearchTree<T>::search(T value)
{
if (value == this->root){
return value;
}
else if (value < this->root)
{
if (left == nullptr){}
else
{
return left->search(value);
}
}
else if (value > this->root)
{
if (right == nullptr){}
else
{
return right->search(value);
}
}
}
Ошибка двоичного файла C2678 <<: не найден оператор, который принимает левый операнд типа 'T' (или нет допустимого преобразования) </p>
Ошибка двоичного файла C2678 '== ': не найден оператор, который принимает левый операнд типа' T '(или нет приемлемого преобразования)
Ошибка C2678 бинарный'> ': не найден оператор, который принимает левый операндвведите 'T' (или нет приемлемого преобразования)
вот так
bool handler::operator>(const weatherData & w)
{
bool temp = false;
if (w > this->testD)
{
temp = true;
}
return temp;
}
Я пытаюсь получить карту, которая хранится внутри BST, у меня есть оператор перегрузки для этого конкретногообъект, но по какой-то причине приведенный выше код выбрасывает эти ошибки. Мне нужны операторы перегрузки в моем BST, если это тип T?любая помощь будет большой благодарностью.