IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SL & STL C++ Discussion :

nth_element: sgi vs microsoft


Sujet :

SL & STL C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    r0d
    r0d est déconnecté
    Membre expérimenté

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 290
    Billets dans le blog
    2
    Par défaut nth_element: sgi vs microsoft
    Bonjour tout le monde.

    Sur cette page de la sgi, vous trouverez le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    int A[] = {7, 2, 6, 11, 9, 3, 12, 10, 8, 4, 1, 5};
    const int N = sizeof(A) / sizeof(int);
     
    nth_element(A, A + 6, A + N);
    copy(A, A + N, ostream_iterator<int>(cout, " "));
    // The printed result is "5 2 6 1 4 3 7 8 9 10 11 12".
    Or, je viens de l'exécuter sous visual studio 2005, et j'obtiens un résultat complètement différent, à savoir "1 2 3 4 5 6 7 8 9 10 11 12". Autrement dit, le tableau est entièrement trié.

    J'ai testé cette fonction de différentes façons (avec des vecteurs, avec différents types de données, etc.) et j'obtiens toujours le même résultat: mon conteneur est entièrement trié.

    J'ai tenté une excursion dans le code de la STL version vs8, mais c'est décidément trop compliqué pour moi.

    De plus, d'aprés la description de cette fonction dans le livre c++ template library - a tutorial and reference ne correspond pas du tout à ce qu'il se passe quand je fais des tests sous vs8.

    Auriez-vous une idée de ce qu'il se passe? A qui dois-je faire confiance?

  2. #2
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    Les deux resultats correspondent aux specs. (7 est bien a sa place, ce qui est avant est plus petit ou egal, ce qui est apres est plus grand ou egal).

  3. #3
    Expert confirmé
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 527
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 527
    Par défaut
    Avec VC6++ /vs2005 on a le code source de la STL

    dans \include\algorithm
    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
    // TEMPLATE FUNCTION nth_element
    template<class _RI> inline
    	void nth_element(_RI _F, _RI _Nth, _RI _L)
    	{_Nth_element(_F, _Nth, _L, _Val_type(_F)); }
    template<class _RI, class _Ty> inline
    	void _Nth_element(_RI _F, _RI _Nth, _RI _L, _Ty *)
    	{for (; _SORT_MAX < _L - _F; )
    		{_RI _M = _Unguarded_partition(_F, _L, _Median(_Ty(*_F),
    			_Ty(*(_F + (_L - _F) / 2)), _Ty(*(_L - 1))));
    		if (_M <= _Nth)
    			_F = _M;
    		else
    			_L = _M; }
    	_Insertion_sort(_F, _L); }

  4. #4
    r0d
    r0d est déconnecté
    Membre expérimenté

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 290
    Billets dans le blog
    2
    Par défaut
    ok

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Merci de consulter le support Microsoft
    Par Community Management dans le forum Windows
    Réponses: 5
    Dernier message: 01/09/2014, 00h31
  2. Quel SGBD choisir : Oracle ou Microsoft SQL-Server ?
    Par dellibmdell dans le forum Décisions SGBD
    Réponses: 94
    Dernier message: 06/03/2013, 23h42
  3. [Débat] Choisir InterBase/Firebird ou Microsoft SQL-SERVER ?
    Par asenaici dans le forum Décisions SGBD
    Réponses: 90
    Dernier message: 19/03/2009, 20h51
  4. Problème avec Microsoft Jet
    Par LLaurent dans le forum XMLRAD
    Réponses: 2
    Dernier message: 12/10/2003, 11h04
  5. Microsoft SQL Server
    Par ben53 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 26/09/2003, 19h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo