Пропал итератор в классе
Столкнулся с проблемой, что куда-то исчезает итераторы из Qt'овых и STL'евых контейнеров. Пробовал выносить контейнер за класс, делая его статичным, это помогало. При прогоне дебагером, выдает SIGSEGV в участке с стартовым итератором.
map.h
class Map
{
private:
Map(){addSeed(Position(20,20));} //test
static Map *_self;
...
QList<Seed*> Seeds;
public:
static Map *init()
{
if(_self == nullptr)
_self = new Map;
return _self;
}
...
void plusAge(QVector<Position>&);
};
map.cpp
#include "map.h"
Map* Map::_self = nullptr;
...
void Map::addSeed(Position pos, Gen *genome)
{
...
Seeds<<new Seed(pos);
}
void Map::plusAge(QVector<Position> &result)
{
for(auto it = Seeds.begin(); it != Seeds.end(); it++) // вот тут то и крашится
{
...
}
}