решено: Спасибо, разобрался благодаря хамону.Все сводится к попытке вызвать функцию для своего рода нулевого объекта.Он может использовать части объекта, но не другие.
Я понятия не имел, что это может даже произойти.
Вопрос
Я столкнулся с нечетной ошибкой сегментации с
std::map< IntVector3, std::vector<IntVector3> >.
В моем файле MyClass.hpp я делаю это частное свойство:
std::map< IntVector3, std::vector< IntVector3 > > recurData;
В моем файле MyClass.cpp в конструкторе для MyClass я могу запустить
std::vector< IntVector3 > pt;
pt.push_back(IntVector3(1,2,3));
recurData[IntVector3(1,2,3)] = pt;
Это работает правильно, и я не получаю ошибку.
Позже в программе я вызываю функцию в MyClass, которая делает то же самое, изменяя recurData.Не в конструкторе.Это вызывает ошибку сегментации.Нет никаких других изменений в моих знаниях, которые влияют на recurData.
Реализуемый IntVector3: http://pastebin.com/Hc83xapk
Есть много дополнительных операторов, которые я добавил, которые не нужны (> =,<= ...).(Я пытался следовать правилу 3) </p>
Единственная настоящая странность - это оператор <.Это использует std :: string для сравнения.Этот быстрый взлом должен работать для всех x, y, z, если они меньше 99. </p>
Спасибо за помощь, это сводит меня с ума.