Основные вопросы: указатели на объекты в unordered_maps (C ++)

Я новичок в программировании на C ++ и был бы признателен за ответы, которые нене предполагаю много предварительных знаний.

Благодаря предложениям здесь ямы создали неупорядоченную карту:

typedef std::tr1::unordered_map hmap;

Данные на этой карте являются указателями на экземпляры класса Strain. Как только эти экземпляры созданы, я создаю для них указатели, а затем добавляю эти указатели в мою хеш-таблицу (hmap StraightTable) и в другой вектор (vector < Напряжение *> liveStrains), например,

string MRCA;
for ( int b = 0; b < SEQ_LENGTH; b++ ) {
 int randBase = rgen.uniform(0,NUM_BASES); 
 MRCA.push_back( BASES[ randBase ] );
}
Strain * firstStrainPtr;
firstStrainPtr = new Strain( idCtr, MRCA, NUM_STEPS );
liveStrains.push_back( firstStrainPtr ); 
strainTable[ MRCA ]= firstStrainPtr;

Экземпляры класса Strain никогда не удаляются, равно как и указатели на них не удаляются из straTable. Указатели иногда перемещаются между векторами < Напряжение *> liveStrains и вектор < Напряжение *> deadStrains, но однажды в режиме «Стабильный» они остаются на «Стабильном».

Это кошерный? Пока базовые экземпляры никогда не уничтожаются, будут ли добавленные к ним указатели оставаться неизменными?

Также верно, что я всегда смогу получить атрибуты-члены из указателей в straTable, используя, например, для первой записи, I '

 hmap::const_iterator itr1 = strainTable.begin();
 int id = (itr1->second)->getStrainID();

Я обнаружил, что через некоторое время указатели в моей таблице ссылок указывают на мусор.

Ответы на вопрос(2)

Ваш ответ на вопрос