Hallo,
ik heb een probleem waar ik niet uitgaat met dit gedeelte code, crashed op de eerste X_i--; regel
hoewel dit perfect werkt in een oudere MSVC versie crashed dit wanneer gecompileerd in MSVC2005.
Ik heb in fiete een XS_DATA lijst die ik geleidelijk leeg maak met kleinere lijsten.
Omdat ik een element uit de lijst verwijder, zet ik de iterator 1 minder. Nu bedenk ik net of dit wel juist is wat ik doe...
Nochtans raar dat dit wel werkt in die andere versie...
ben nog maar 2 weekjes bezig in c++...
while ( !XS_data.empty() )
{
XS_line.clear();
bool first=true;
for(X_ii=XS_data.begin(); X_ii!=XS_data.end(); X_ii++)
{
TCHAR *refnaam;
XS_elem=*X_ii;
if (first == true)
{
first = false;
refnaam=XS_elem.name;
}
if (_tcscmp(XS_elem.name, refnaam)==0)
{
XS_line.push_back(XS_elem);
XS_data.erase( X_ii );
X_ii--;
}
}
....
}
ik heb een probleem waar ik niet uitgaat met dit gedeelte code, crashed op de eerste X_i--; regel
hoewel dit perfect werkt in een oudere MSVC versie crashed dit wanneer gecompileerd in MSVC2005.
Ik heb in fiete een XS_DATA lijst die ik geleidelijk leeg maak met kleinere lijsten.
Omdat ik een element uit de lijst verwijder, zet ik de iterator 1 minder. Nu bedenk ik net of dit wel juist is wat ik doe...
Nochtans raar dat dit wel werkt in die andere versie...
ben nog maar 2 weekjes bezig in c++...
while ( !XS_data.empty() )
{
XS_line.clear();
bool first=true;
for(X_ii=XS_data.begin(); X_ii!=XS_data.end(); X_ii++)
{
TCHAR *refnaam;
XS_elem=*X_ii;
if (first == true)
{
first = false;
refnaam=XS_elem.name;
}
if (_tcscmp(XS_elem.name, refnaam)==0)
{
XS_line.push_back(XS_elem);
XS_data.erase( X_ii );
X_ii--;
}
}
....
}