1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
|
typedef std::map<cstd::cString, cstd::cTypes::DWORD>::const_iterator categorie_map_const_iterator;
typedef std::map<cstd::cTypes::DWORD, std::map<cstd::cString, cstd::cTypes::DWORD> >::const_iterator sous_categorie_map_const_iterator;
void
CTri::add(const cString& categorie) // ok ça fonctionne
{
if (_M_categorie_map.find(categorie) == _M_categorie_map.end())
{
_M_last_index_categorie++;
_M_categorie_map[categorie] = _M_last_index_categorie;
}
}
void
CTri::add(const cstd::cString& categorie, const cstd::cString& sous_categorie)
{
categorie_map_const_iterator it_categorie;
sous_categorie_map_const_iterator it_sous_categorie;
cTypes::DWORD last_index_sous_categorie = 0;
map<cString, cTypes::DWORD> m;
add(categorie);
it_categorie = _M_categorie_map.find(categorie);
last_index_sous_categorie = getIndexMaxSousCategorie((*it_categorie).second);
it_sous_categorie = _M_sous_categorie_map.find((*it_categorie).second);
last_index_sous_categorie++;
// première méthode:
// (*it_sous_categorie).second[sous_categorie] = last_index_sous_categorie; <- le compilo il aime pas
// deuxième méthode :
m = (*it_sous_categorie).second; <-au deuxième appel j'ai une violation d'accès
m[sous_categorie] = last_index_sous_categorie;
} |
Partager