Bonjour
en faisant des essais sur le conteneur set, je me suis retrouvé avec un énrome problème en testant la fonction upper_bound:
en effet, la norme n'indique rien au sujet des recherches dont aucun membre ne serait pas dans le set.
j'ai donc fait le programme de test suivant:
Or sur
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
18
19
20
21
22
23
24
25
26
27 #include <iostream> #include <set> void main() { std::set<int> b; std::set<int>::iterator c; for (int i=0; i<100;++i){ std::cout<<i<<" "; b.insert(i); } try { std::cout<<std::endl<<std::endl; std::cout<<*b.upper_bound(50)<<std::endl; c=b.upper_bound(100); std::cout<<*c<<std::endl;//le programme plante ici. } catch (std::exception &e) { std::cout<<e.what(); } }le programme plante purement et simplement, c'est à dire qu'il refuse de déréférencer c alors que c'est censé être un itérateur bidirectional.
Code : Sélectionner tout - Visualiser dans une fenêtre à part std::cout<<*c<<std::endl;
De plus, il ne sort aucune exception ni quoi que ce soit dans le genre ...
si vous avez une idée de la cause, je suis preneur.
Cordialement
Partager