Итак, я создал двоичное дерево поиска, которое хранится в массиве. Это двоичное дерево поиска (BST) хранит введенный пользователем идентификатор, возраст и имя, а затем помещает его в массив, отсортированный по возрастанию по идентификатору.
Я пытаюсь написать функцию удаления, которая принимает идентификатор пользовательского ввода, проходит по вектору и, если находит соответствующий идентификатор, удаляет его.
Однако я не могу заставить BinaryTree.erase () работать из-за ошибки.
Severity Code Description Project File Line Suppression State
Error (active) E0304 no instance of overloaded function "std::vector<_Ty, _Alloc>::erase [with _Ty=Node, _Alloc=std::allocator<Node>]" matches the argument list Project_4CS210
После удаления я планирую организовать вектор так, чтобы не было открытых пятен, однако я хочу убедиться, что сначала смогу удалить узел. Какие-либо предложения? Я новичок, поэтому для меня большая часть этого нова.
Here's my delete function.
#include "BinaryTree.h"
#include <string>
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int index;
struct Node
{
int ID;
int age;
string name;
Node()
{
}
Node(int id, int Age, string nm)
{
this->ID = id;
this->age = Age;
this->name = nm;
}
};
vector<Node> binaryTree;
void BST::Delete()
{
int input_id;
cout << "What is the ID of the person to be deleted" << endl;
cin >> input_id;
for (unsigned int i = 0; i < binaryTree.size(); i++)
{
if (input_id == binaryTree.at(i).ID)
binaryTree.erase(i);
}
}