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 :

Création d'un opérateur std::vector operator + (const std::vector&)


Sujet :

SL & STL C++

  1. #1
    Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 113
    Points : 53
    Points
    53
    Par défaut Création d'un opérateur std::vector operator + (const std::vector&)
    Bonjour à tous
    je cherche à savoir s'il est possible de créer un opérateur + qui sommerait chaque composante de deux vecteurs
    Ex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    std::vector<int> v1, v2,v;
    for (int i=0; i < 3; i++)
    {
      v1[i] = i;
      v2[i] = i*i;
    }
    v = v1+v2;  // je voudrais donner un sens à cet opérateur et que le résultat me donne v = { 0 , 2, 6 }
    Jusque là pas trop de problème, je voius assez bien comment je dois faire d'un point de vue syntaxe. Par contre je ne sais pas s'il est possible de créér un nouvel opérateur dans la librairie std::vector? Si oui comment??

    Merci d'avance
    D

    balise [code] rajoutée par r0d. Merci d'y penser la prochaine fois.

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Tu devrais plutôt jeter un oeil à std::valarray, qui est un tableau à but mathématique et supportant donc ce genre d'opérations.

  3. #3
    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
    Points : 16 213
    Points
    16 213
    Par défaut
    Un opérateur + est souvent une fonction libre, et non une fonction membre... Tu ne devrais donc pas avoir de soucis. Par contre, comme l'a dit Laurent, il y a des alternatives toutes faites. En plus des valarrays, assez peu utilisés à ma connaissances, il y a des choses dans boost::uBlas, dans MPL, dans Blitz++... Donc l'embarras du choix. Exemple repris de la doc de boost::uBlas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #include <boost/numeric/ublas/vector.hpp>
    #include <boost/numeric/ublas/io.hpp>
     
    int main () {
        using namespace boost::numeric::ublas;
        vector<double> v1 (3), v2 (3);
        for (unsigned i = 0; i < std::min (v1.size (), v2.size ()); ++ i)
            v1 (i) = v2 (i) = i;
     
        std::cout << v1 + v2 << std::endl;
        std::cout << v1 - v2 << std::endl;
    }

  4. #4
    Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 113
    Points : 53
    Points
    53
    Par défaut
    Merci beaucoup
    J'utilise Boost::ublas et ca a l'air de fonctionner

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

Discussions similaires

  1. conversion const std::string et const char * ?
    Par panthere noire dans le forum C++
    Réponses: 7
    Dernier message: 28/02/2011, 15h51
  2. Réponses: 3
    Dernier message: 02/01/2009, 12h25
  3. Réponses: 17
    Dernier message: 03/06/2008, 13h19
  4. Réponses: 1
    Dernier message: 20/02/2007, 17h17
  5. std::string, operator =
    Par tut dans le forum SL & STL
    Réponses: 10
    Dernier message: 05/11/2004, 12h07

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