comment faire pour les insérer dans la stl ensemble?
Je vais avoir des problèmes...je ne suis pas sûr de comprendre la STL de la documentation. Disons que j'ai ceci:
#include <set>
...
struct foo
{
int bar;
};
struct comp
{
inline bool operator()(const foo& left,const foo& right)
{
return left.bar < right.bar;
}
};
int main()
{
std::set<foo,comp> fooset; //Uses comparison struct/class object comp to sort the container
...
return 0;
}
Comment puis-je insérer struct foo dans l'ensemble à l'aide de mon propre comparateur struct?
Avez-vous essayé d'utiliser le
insert
méthode encore? Quelle erreur avez-vous?
OriginalL'auteur Jay Kim | 2012-03-22
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser le
set::insert
méthode, il n'y a plus rien à faire. Par exemple,Comme je l'ai montré dans l'exemple de code,
fooset.insert(f1);
, lors de l'insertion d'set
vais utiliser la comparaison foncteur fourni par vous pour déterminer la position correcte de l'objet.Si vous êtes en fonction sur la position d'un élément dans un ensemble bien défini dans le TSL) à faire quelque chose, vous utilisez probablement une mauvaise structure de données.
j'ai pensé à l'aide de la supérieure et de limite inférieure à partir de la configuration serait une bonne façon de faire des recherches? non?
serait une bonne structure de données pour ce cas.
OriginalL'auteur Naveen