а что с перегрузкой? отсчитываешься до нужного элемента просто
template <typename T> T &List<T>::operator[](const int index) { int count = 0; Node *current = this->head; if (index>size) return nullptr; while (current != nullptr) { if (count == index) return current->data; current = current->next_ptr; count++; } } моя реализация но когда хочу вывести то ничего не выводит
nullptr это невалидное значение для T&
если с проверкой, будет выглядеть примерно так T & operator [] (std::size_t index) { auto current = head; for (; index != 0 && current != nullptr; --index) current = current->next; if (current == nullptr) throw_out_of_bound(); return current->data; }
Ты может быть ошибся в других функциях и ловишь побочный эффект уже
подразумевается [[noreturn]] void throw_out_of_bound(); который бросает соответствующее исключение
Научись дебажить, сэкономит время
да оно не скомпилится
У тебя в pushBack ошибка
спасибо щас буду искать
Обсуждают сегодня