Я работаю над некоторыми структурами данных в C ++, используя шаблоны, и столкнулся с некоторыми проблемами. Я реализую HashTable, используя цепочку, и я также реализовал Linked List. Первой проблемой, которую я запустил, была ошибка связывания с моими определениями шаблонов, которая Я решил, включив файл .cpp
, где было объявление.
Теперь я столкнулся с другой проблемой, и я не уверен, что это проблема, связанная с шаблонами или настройками VS. Прежде всего, создание проекта не обновит его, если я по какой-то причине не сохраню и не скомпилирую точку входа. Я читаю некоторые проблемы, и настройки кажутся нормальными.
Самая важная проблема, с которой я столкнулся, заключалась в том, что в моем файле Hashtable.cpp
есть проблемы с автозаполнением, касающиеся ONLY всего, что связано с моим классом List
.
Например:
Я использовал List<T> **arr
в своем классе Hashtable
и всякий раз, когда я пытаюсь использовать любой из методов списка, например, arr[1]->insert(100)
не только не выполняет автозаполнение, но и говорит, что метод принадлежит, как я покажу на скриншоте ниже.
Объявления выглядят так:
Hashtable.h
#pragma once
#include "Log.h"
#include "List.h"
#include <vector>
#include <iostream>
Hashtable.cpp
:
#include "Hashtable.h"
А в моем списке нет ничего особенного, кроме iostream
и т. Д.
Я хочу отметить, что код не выполняет автозаполнение, но он работает, он запускает правильные методы, но работать с ним действительно неудобно и раздражает. Также я беспокоюсь, что он может не работать на другом компьютере, что действительно важно мне.
Ты хоть представляешь, что может быть не так?
Скриншот, который я упомянул