He creado sin ningún problema los vectores, así como la comparación de mensajes dentro de un vector. En el primer vector funciona correctamente pero en mi segundo vector el ultimo elemento el for lo ignora, alguien sabria decirme porque?
Código:
vector<wstring> m_vChoralList;
vector<wstring> m_vImpEulList;
vector<wstring> m_vCompleteList;
// Estadistica de los mensajes de error
// Comparando los elementos de la lista Choral:
vector<int> n_vTimesStepReduction;
vector<int> n_vDominateError;
for(size_t i=0; i<m_vChoralList.size() - 1; ++i){
int m_nTimes=1;
for(size_t j=i+1; j<m_vChoralList.size(); ++j){
// if two messages are equal then
if(m_vChoralList[i] == m_vChoralList[j]){
m_nTimes+=1;
m_vChoralList.erase(m_vChoralList.begin()+j);
--j;
}
}
n_vTimesStepReduction.push_back(m_nTimes);
n_vDominateError.push_back(m_nTimes);
}
// Comparando los elementos del vector ImpEul:
for(size_t k=0; k<m_vImpEulList.size() - 1; ++k){
int m_TimesDominate=1;
for(size_t l=k+1; l<m_vImpEulList.size(); ++l){
// if two messages are equal then
if(m_vImpEulList[k] == m_vImpEulList[l]){
m_TimesDominate+=1;
m_vImpEulList.erase(m_vImpEulList.begin()+l);
--l;
}
}
n_vTimesStepReduction.push_back(0);
n_vDominateError.push_back(m_TimesDominate);
}
El tamaño del vector n_vTimesStepReduction tendria que ser la suma de los tamaños del vector m_vChoralList y m_vImpEulList, por ejemplo supongamos que uno tiene 9 elementos y el otro tiene 5 elementos, n_vTimesStepReduction debería tener 14 elementos y solo crea 13 elemenos, lo mismo ocurre con n_vDominateError. Alguna sugerencia?