Я зацикливаю свой массив, чтобы связать одни данные с другими. Если данных нет, я удаляю строку. В основном, если array1[i].frame != array2[i].frame
(массивы содержат структуру). Я сделал это:
struct Sarray1 {int frame; /*...*/; Sarray2 sarray2};
struct Sarray2 {int frame; /*...*/;};
std::vector array1<Sarray1>;
std::vector array2<Sarray2>;
int i = 0;
for (auto& e : array1)
{
if (i >= array2.size())
break;
if (e.frame == array2[i].frame)
e.sarray2= array2[i];
else
array1.erase(array1.begin() + i);
i++;
}
Можно ли так делать для удаления данных? Я всегда читаю, что удалять во время al oop нехорошо. Будет ли у меня какой-нибудь странный компортмент? Я не знаю об устойчивости foreach
l oop в C ++ при изменении размера.
Заранее спасибо.