Здравствуйте, мне нужно написать методы SingleList(pop_back(), add(), remove()) помогите разобраться с ними!

  1. methods: push_back(T element), pop_back(), add(T element, int index), set(T element, int index), remove(int index)
  2. 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 шт):

Автор решения: Zhihar

чисто по дизайну:

  1. а зачем использовать NULL, когда есть родной nullptr и он уже в коде используется?

  2. если методы только возвращают данные и не меняют их, то делать такие методы константными:

     int length() const {
         return size;
     }
    
  3. используется шаблонный тип T, а где в коде вообще объявление template?

  4. в классе Node есть конструктор с параметром и только, почему он не используется?

     if(*Node==NULL) {
         *Node = new Node;
     }
    

почему не делается так:

    if(head== nullptr) {
        head= new Node(element);
    }
  1. если Node - это класс, то что делает

     *Node =
    

ошибки не смущают? как классу что-то можно присваивать?

А переменной вы тоже присваиваете значение так же:

float pi;
float = 3.14159;

?

в общем код с полным непониманием базовых вещей :(

может сначала все таки попробовать основы C++ подучить?

начните для начала не с шаблонного класса - пусть это будет класс для работы c int

потом руками пропишите туда 2-3 элемента и определите метод int get(const int indx) const

и т.д. и идите от более простых методов работы к более сложным

→ Ссылка