 |
C++Talk.NET C++ language newsgroups
|
| View previous topic :: View next topic |
| Author |
Message |
Michaël Delva Guest
|
Posted: Mon Feb 23, 2004 2:32 pm Post subject: Trier une map sur la clé et sur le deuxième élément |
|
|
Bonjour à tous,
j'ai la multimap suivante:
std::multimap<int,LONGLONG> liste_clics;
Elle se trie toute seule en fonction de la clé, mais je voudrais
également que cette map soit triée en fonction du LONGLONG...
Comment je peux faire ça, sachant que std::sort() ne fonctionne pas avec
une multimap?
Merci d'avance
|
|
| Back to top |
|
 |
Fabien LE LEZ Guest
|
Posted: Mon Feb 23, 2004 2:41 pm Post subject: Re: Trier une map sur la clé et sur le deuxième élément |
|
|
On 23 Feb 2004 14:32:06 GMT, "Michaël Delva" <zoubidaman (AT) hotmail (DOT) com>
wrote:
| Quote: | std::multimap<int,LONGLONG> liste_clics;
Elle se trie toute seule en fonction de la clé, mais je voudrais
également que cette map soit triée en fonction du LONGLONG...
|
struct MaPaire
{
int i;
LONGLONG ll;
bool operator < (MaPaire const& rhs) const
{
if (i
if (i>rhs.i) return false;
return ll < rhs.ll;
}
};
std::set
--
;-)
|
|
| Back to top |
|
 |
Michaël Delva Guest
|
Posted: Mon Feb 23, 2004 4:34 pm Post subject: Re: Trier une map sur la clé et sur le deuxième élément |
|
|
Fabien LE LEZ <gramster (AT) gramster (DOT) com> wrote in
news:m44k30572gr75mm624hr7p0om686moq0a0 (AT) 4ax (DOT) com:
| Quote: | struct MaPaire
{
int i;
LONGLONG ll;
bool operator < (MaPaire const& rhs) const
{
if (i
if (i>rhs.i) return false;
return ll < rhs.ll;
}
};
std::set
|
Ok, merci, mais maintenant je n'arrive plus à chercher une valeur dedans...
Comment ça marcherait avec std::find()?
Je dois bien avouer que je n'arrive pas à utiliser les prédicats :-(
Merci d'avance
|
|
| Back to top |
|
 |
Ivan Vecerina Guest
|
Posted: Mon Feb 23, 2004 7:50 pm Post subject: Re: Trier une map sur la clé et sur le deuxième élément |
|
|
"Michaël Delva" <zoubidaman (AT) hotmail (DOT) com> wrote
| Quote: | Fabien LE LEZ <gramster (AT) gramster (DOT) com> wrote in
news:m44k30572gr75mm624hr7p0om686moq0a0 (AT) 4ax (DOT) com:
struct MaPaire
{
....
};
std::set <MaPaire> liste_clics;
|
En fait, on peut aussi directement écrire:
std::set< std::pair liste_clics;
| Quote: | Ok, merci, mais maintenant je n'arrive plus à chercher une valeur
dedans...
Comment ça marcherait avec std::find()?
|
Pour des raisons de performance, il vaut probablement mieux utiliser
une fonction membre de std::set plutôt qu'un algorithme plus général.
Peut-être utiliser l'intervalle:
liste_clics.lower_bound( std::make_pair(mon_int, MIN_LONGLONG) )
.. liste_clics.lower_bound( std::make_pair(mon_int+1, MIN_LONGLONG) )
| Quote: | Je dois bien avouer que je n'arrive pas à utiliser les prédicats
|
Un alternative peut-être plus simple, en fonction des opérations
à effectuer sur la collection:
std::map< int, std::set liste_clics;
Salutations,
Ivan
--
http://ivan.vecerina.com/contact/?subject=NG_POST <- e-mail contact form
|
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|