I have two classes:
class CAlbum
{
private:
QString Nome; /**< Nome do Álbum */
QString Descricao; /**< Descrição do Álbum */
QString Diretoria; /**< Diretoria onde se encontra o Álbum */
//QPixmap Imagem;
std::vector <CInterprete> Interpretes; /**< Informação relativa aos Intérpretes associados ao Álbum */
std::vector <CMusica> Musicas; /**< Músicas presentes no Álbum */
public: ...
}
class CInterprete
{
QString Nome; /**< Nome do Intérprete */
QString Nacionalidade; /**< Nacionalidade do Intérprete */
QDate Nascimento; /**< Data de Nascimento do Intérprete */
public: ...
}
And one of the operators I have in class CAlbum
is the following:
bool CAlbum::elimina_Interprete(const QString nome_Interprete){
int i;
for ( i = 0 ; i < (int) Interpretes.size() ; i++){
if (Interpretes[i].retorna_Nome() == nome_Interprete){
Interpretes.erase(Interpretes.begin()+i);
return true;
}
}
return false;
}
I tried to apply the same idea but with iterators and it did not work, always giving me an error
Debug Assertion Failed! Expression: vector erase iterator outside range "
How do I get rid of the range with this function?