Вот код, который проходит по всем элементам и ищет повторяющиеся. Индексы этих элементов запоминает, а затем чистит их. Но, тут непонятная штука вылезла. Что чистит не все повторяющиеся, а только некоторые, хотя заполнение списка идет правильно. Ну то есть, было 5 повторяющихся элементов, осталось 2. Почему так?
Вот код этой штуковины.
C++ (Qt)
/// Правка дерева этапов полета
void TLV::editTreeView()
{
QTreeWidgetItem* header = treePhaseView -> topLevelItem(0);
QTreeWidgetItem *phaseNode = 0, *fileNode = 0, *revFileNode = 0;
for(register int i=0; i<header -> childCount(); ++i)
{
phaseNode = header -> child(i);
if(phaseNode == 0) break;
string ph(phaseNode -> text(0).toStdString());
QList<int> indexList;
for(register int j=0; j<phaseNode -> childCount(); ++j)
{
fileNode = phaseNode -> child(j);
if(fileNode == 0) break;
string sj(fileNode -> text(0).toStdString());
for(register int k=j+1; k<phaseNode -> childCount(); ++k)
{
revFileNode = phaseNode -> child(k);
if(revFileNode == 0) break;
string pj(revFileNode -> text(0).toStdString());
if(revFileNode -> text(0) == fileNode -> text(0))
indexList.append(k);
}
}
for(register int j=0; j<indexList.size(); ++j)
phaseNode -> removeChild(phaseNode -> child(indexList[j]));
}
}
Буду благодарен за помощь....