Здравствуйте, мне нужно написать методы SingleList(pop_back(), add(), remove()) помогите разобраться с ними!
- methods:
push_back(T element),pop_back(),add(T element, int index),set(T element, int index),remove(int index) - operators:
==,!=,>>,<<такое дело я начал сpush_back(T element),pop_back()и вроде уловил как делать дальше я начал писать метод Add но если честно я не совсем понимаю где использовать адрес или указатель в написал код смотря примеры помогите разобраться
class SingleList {
class Node {
public:
T data;
Node* next;
Node(T data = T(), Node* next = nullptr) {
this->data = data;
this->next = next;
}
};
int size;
Node* head;
public:
SingleList() {
size = 0;
head = nullptr;
}
int length() {
return size;
}
void add(T element, int index) {
if(*Node==NULL) {
*Node = new Node;
} else {
while (*Node->next!=NULL) {
*Node = Node->next;
}
*Node->next= new Node;
}
++size;
}
Ответы (1 шт):
чисто по дизайну:
а зачем использовать
NULL, когда есть роднойnullptrи он уже в коде используется?если методы только возвращают данные и не меняют их, то делать такие методы константными:
int length() const { return size; }используется шаблонный тип
T, а где в коде вообще объявлениеtemplate?в классе
Nodeесть конструктор с параметром и только, почему он не используется?if(*Node==NULL) { *Node = new Node; }
почему не делается так:
if(head== nullptr) {
head= new Node(element);
}
если
Node- это класс, то что делает*Node =
ошибки не смущают? как классу что-то можно присваивать?
А переменной вы тоже присваиваете значение так же:
float pi;
float = 3.14159;
?
в общем код с полным непониманием базовых вещей :(
может сначала все таки попробовать основы C++ подучить?
начните для начала не с шаблонного класса - пусть это будет класс для работы c int
потом руками пропишите туда 2-3 элемента и определите метод int get(const int indx) const
и т.д. и идите от более простых методов работы к более сложным