Каковы размеры векторов?
Если у viral_data больше элементов, чем у antiviral_data, то, поскольку вы увеличиваете aI и vI с одинаковой скоростью, aI выходит за пределы, прежде чем цикл vI завершится.
Вот краткий пример:
for(int i = 0; i < 5;)
{
for(int j = 0; j < 10;)
{
i++;
j++;
}
}
Если вы пройдете по циклам for, вы заметите, что внутренний цикл не закончится, пока j и i не будут равны 10, но в соответствии с вашим внешним циклом я должен not быть больше 5.
Вы захотите увеличить i (или, в вашем случае, aI) во внешнем цикле следующим образом:
for(int i = 0; i < 5;)
{
for(int j = 0; j < 10;)
{
j++;
}
i++;
}