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 :

STL set et type complex


Sujet :

SL & STL C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 22
    Par défaut STL set et type complex
    Bonjour

    Je cherche à utiliser un set pour y ranger des types double[2], mais je ne vois pas trop comment m'y prendre.

    En fait j'utilse fftw qui manipule des valeurs complexes à l'aide d'un typedef double fftw_complex[2] et j'aurais penser que set<fftw_complex> symb m'aurait permis de le faire. Mais à priori fftw_complex n'est pas un type reconnu par le set.

    D'un coté, celà ne m'étonne pas vu que le set peut être ordonné, je vois mal, comment il peut ordonné un complexe à moins qu'on lui dise explicitement dans quel sens on tourne(cadran du cercle trigo).


    Si quelqu'un à une idée pour faire celà...

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    258
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 258
    Par défaut
    Déjà, mieux vaut utiliser la structure complexe, présente dans le standard. Ensuite, tu peux passer à set un critère de comparaison de deux de ses éléments. Ce critère peut utiliser soit la vision trigo des complexes, soit les voir simplement comme une paire, et faire un ordre lexicographique sur ton complexe.

  3. #3
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Il faut surtout avoir un moyen de comparer des fftw_complex. Quand tu auras ça, tu pourras faire un std::set.

  4. #4
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Par défaut
    et j'aurais penser que set<fftw_complex> symb m'aurait permis de le faire.
    Si tu avais pensé ça, tu n'avais probablement pas lu les pré-requis de std::set.
    Cela n'est pas possible dans ton cas pour plusieurs raisons.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 22
    Par défaut
    Citation Envoyé par loufoque
    Si tu avais pensé ça, tu n'avais probablement pas lu les pré-requis de std::set.
    Cela n'est pas possible dans ton cas pour plusieurs raisons.
    C'est à dire? Hormis le fait que set ne sait pas comment ranger les éléments (car si j'ai bien compris, set les ordonne), je vois pas ce qui m'empêche de faire un set d'un type autre que les types existants dans le standard.

    Citation Envoyé par roulious
    Déjà, mieux vaut utiliser la structure complexe, présente dans le standard
    oui je peux aussi utiliser la structure associé à complex.h mais vu que c'est la structure employé par fftw...

    Citation Envoyé par Miles
    Il faut surtout avoir un moyen de comparer des fftw_complex. Quand tu auras ça, tu pourras faire un std::set.
    Oui complètement d'accord avec celà et c'est d'ailleurs ce que sugère roulious en disant
    Ensuite, tu peux passer à set un critère de comparaison de deux de ses éléments. Ce critère peut utiliser soit la vision trigo des complexes, soit les voir simplement comme une paire, et faire un ordre lexicographique sur ton complexe.
    Je vais donc voir à utiliser le type complex standard et sinon, je me penche sur la manière de comparer mes complexes (version trigo) et faire comprendre à set comment les ranger. Ce qui est dommage, c'est que l'ordre ne m'interesse pas, je cherche juste à dégager les doublons.

  6. #6
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Alors pourquoi ne pas utiliser un vector trié ?

  7. #7
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Par défaut
    je vois pas ce qui m'empêche de faire un set d'un type autre que les types existants dans le standard.
    Le fait que ton type ne soit pas CopyConstructible et Assignable.

  8. #8
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Par défaut
    Citation Envoyé par jguillot
    Je vais donc voir à utiliser le type complex standard et sinon, je me penche sur la manière de comparer mes complexes (version trigo) et faire comprendre à set comment les ranger. Ce qui est dommage, c'est que l'ordre ne m'interesse pas, je cherche juste à dégager les doublons.
    Si l'ordre ne t'intéresse pas, je te conseille la comparaison lexicale, elle est plus simple à programmer, et plus rapide à exécuter.
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

Discussions similaires

  1. Service Web avec Axis et types complexes.
    Par Skyman37 dans le forum Services Web
    Réponses: 17
    Dernier message: 13/01/2011, 09h28
  2. [type complex] problemes bizzards lors de la deserialisation
    Par djynwk dans le forum Services Web
    Réponses: 6
    Dernier message: 23/11/2006, 18h43
  3. [Débutant] Tag Text et type "complexe" ?
    Par DemonKN dans le forum Struts 1
    Réponses: 14
    Dernier message: 22/09/2006, 10h01
  4. STL, set
    Par radium dans le forum SL & STL
    Réponses: 1
    Dernier message: 17/11/2005, 14h46
  5. Type complexe en parametre dans une procedure stockée
    Par Tsimplice dans le forum Oracle
    Réponses: 2
    Dernier message: 06/10/2005, 02h42

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