C ++, атрибут объекта исчезает при вставке / удалении из кучи - PullRequest
0 голосов
/ 15 ноября 2018

Здравствуйте, извините, если есть какие-либо проблемы в этом посте, я впервые использую сайт, и я немного отчаялся.

Это для школы.Учитель предоставил нам готовый код для класса Heap, класса Set и некоторых других вещей.Из классов, которые я сделал сам, есть один, который имеет 4 атрибута: 3 из них long double с, а один - std::vector из Set с (не std::set с, преподаватель предоставил Set с).

У меня проблема при вставке или удалении объектов этого класса из предоставленной кучи.Объекты, вставленные в кучу, при удалении пропускают все, что я положил на std::vector.

Часть из моего main, где это происходит (за исключением отладки)

PartialSolution temp; //this is the object
temp.includeSet(*s);
temp.Print(); //so far everything works fine
H.insert(temp);
PartialSolution l; 
l = H.top(); //written by teacher, gets first element from heap
l.Print(); //here the contents I've added with includeSet are gone

Я почти уверен, что проблема не может быть в куче, так как учитель сделал это, а также использует шаблон clthe атрибутов объектов на атрибутах объектов, но я действительно понятия не имею, где проблемаможет быть.

Вектор объявлен как

std::vector<Set> sets;

РЕДАКТИРОВАТЬ: Решено, спасибо.(Извините, если я делаю это неправильно, я не уверен, как еще закрыть вопрос).Проблема заключалась в методе оператора = для PartialSolution, созданном учителем, который копировал только атрибуты long double и использовался в Heap.Добавлена ​​строка для копирования std::vector, и теперь она работает нормально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...