Bonjour,

Voici le problème! J'ai un std::map dont je souhaiterais extraire certaines valeurs. Sa clé principale est de la forme <i,j,k> tandis que la valeur qui lui est associée est de type booléenne.
Je souhaiterais extraire de ce std::map, tous les triplets <i,j, * > avec i,j constant.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
Exemple:
...
<1,2,4>, true
<1,3,2>, true
<1,3,5>, false
<1,3,12>, true
<2,5,0>,true
...
Je souhaiterias extraire les triplets <1,3,*>. Je devrais donc obtenir la liste:
2 (true), 5(false), 12(true). Pour simplifier le problème, je ne suis pas intéressé par les valeurs booléennes pour le moment.

Voici le code que j'ai tenté d'écrire!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
struct triple_type{ int i; int j; int k;};
int i=1;
int j=3;
 
bool continue=true;
std::vector<I> list;
do
{
   std::map<triple_type, bool, ...>::const_iterator iter =  data_->find(triple_type(i,j,???); //incomplet!!!
   if(iter != data_->end())    list.push_back(iter->first.k); // we found it
   else continue = false;
 
///if (iter->first.i == i && iter->first.j == k)
 
}
while(continue);
Soit ça marche pas, je patauge complètement

Je vous remercie par avance.
Cordialement,
Rodrigue