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

C++ Discussion :

Tableaux contre vecteurs ou vis versa !


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Avatar de Claude URBAN
    Homme Profil pro
    Prendre le temps de vivre. . .
    Inscrit en
    Mai 2006
    Messages
    274
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Prendre le temps de vivre. . .

    Informations forums :
    Inscription : Mai 2006
    Messages : 274
    Par défaut Tableaux contre vecteurs ou vis versa !
    Bonjour,

    Pourquoi est-il ( ou serait-il ) préférable d'utiliser les vecteurs ( vector ) à la place des tableaux ??

    Je n'ai pas trouvé de tutoriel sur le site concernant les vector.

    Quelqu'un peut-il me donner un lien. ( ou me le prêter... )

    merci

    Claude

  2. #2
    Invité
    Invité(e)
    Par défaut
    pour la simple raison que gérer un tableau a la main fait encourir des risques quant à la gestion de la mémoire.
    par ailleur, un vector est un template, c'est à dire qu'il peut est adapté a nimporte quel type d'objet...

  3. #3
    Membre éclairé
    Avatar de Claude URBAN
    Homme Profil pro
    Prendre le temps de vivre. . .
    Inscrit en
    Mai 2006
    Messages
    274
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Prendre le temps de vivre. . .

    Informations forums :
    Inscription : Mai 2006
    Messages : 274
    Par défaut
    Merci,

    quels genres de risques ...
    et pourquoi un vecteur ne le pourrait-il pas ?

    As-tu un tuto à ce sujet ?

  4. #4
    Membre Expert
    Avatar de Ti-R
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2003
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 683
    Par défaut

    http://c.developpez.com/faq/cpp/?page=STL#STL_vector

    C'est surtout moins lourd à utilisé qu'un tableau dans 95% des cas.

  5. #5
    Membre éclairé
    Avatar de Claude URBAN
    Homme Profil pro
    Prendre le temps de vivre. . .
    Inscrit en
    Mai 2006
    Messages
    274
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Prendre le temps de vivre. . .

    Informations forums :
    Inscription : Mai 2006
    Messages : 274
    Par défaut Réponse à Ti-R

    merci pour ce lien, qui est excellent, et je suis justement en train de travailler dessus.

    Mais j'aurais souhaité quelque chose de plus explicite (plus approfondi) sur la question.

    J'ai cherché un peu partout et n'est rien trouvé.


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

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 295
    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 295
    Billets dans le blog
    2
    Par défaut
    Je vais donner mon avis, réponse subjective donc.

    Avantages des vectors (remarques valables pour les conteneurs en général):
    - sécurité. Les conteneurs sont des classes epprouvées (utilisées depuis longtemps par de nombreux développeurs). S'ils sont utilisés correctement (utilisation d'iterateurs notamment) ils permettent de générer un code solide sans se poser de questions.
    - simplicité. L'utilisation des conteneurs, après une rapide prise en main, est très simple (pas de gestion de mémoire, de types, manipulation aisée, etc.). Le temps gagné n'est pas négligeable.
    - modularité/généricité. Les conteneurs (de la stl notamment) sont des templates. Ils permettent donc de gérer tous types d'objets de la même façon, sans se poser de questions.
    - efficacité. Ces conteneurs sont le fruit de travaux des meilleurs développeurs depuis longtemps. Ils sont optimisés et leur utilisation est souvent préférable (d'un point de vue de la rapidité d'exécution) aux tableau de type C.
    - dynamisme. Les tableaux dynamiques en c++ sont souvent délicats à implémenter, maintenir et sécuriser. Lorsque la taille du tableau est inconnue, cela ne pose aucun problème avec les conteneur.
    - portabilité. Cette remarque est spécifique aux conteneurs de la stl et de boost (et elle s'applique également aux tableaux de type C, j'en conviens).

    Voilà, c'est à peu près tout ce que je vois, mais c'est déjà pal mal non?

  7. #7
    mat.M
    Invité(e)
    Par défaut
    Citation Envoyé par Claude URBAN
    Bonjour,

    Pourquoi est-il ( ou serait-il ) préférable d'utiliser les vecteurs ( vector ) à la place des tableaux ??

    Je n'ai pas trouvé de tutoriel sur le site concernant les vector.

    Quelqu'un peut-il me donner un lien. ( ou me le prêter... )

    merci

    Claude

    La réponse est simple: si tu n'as que quelques élements à peine une dizaine on prend un tableau statique [];
    Mais c'est vrai que c'est pas "safe" si tu ne fais pas attention aux débordements..
    Dans les gros projets on n'utilise pas trop les tableaux statiques mais , effectivement, les std::vector plutot pour allouer des objets à la demande..
    Pour l'utilisation il y a la doc de SGI mais c'est pas très explicite...

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

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 295
    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 295
    Billets dans le blog
    2
    Par défaut
    bah, personnellement c'est devenu un reflexe. Même si je n'ai que trois valeurs, j'utilise un vector , mais je suis d'accord que c'est mieux avec un petit tableau de type C ... s'il n'y en a que deux, je vais tout de même utiliser une std::pair

  9. #9
    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
    Citation Envoyé par r0d
    mais je suis d'accord que c'est mieux avec un petit tableau de type C
    J'ai du mal à voir l'intéret du tableau C par rapport au std::vector, meme pour des tableaux de petite taille.

    Dans le cas où on a droit au bibliothèques externes, boost::array a la meme sémantique que les tableaux C et est beaucoup plus compatible avec les algorithmes de la SL.

  10. #10
    Membre Expert
    Avatar de Ti-R
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2003
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 683
    Par défaut
    Un tableau mode "C" pour faire un traitement important de donnés comme du traitement d'image. C'est super facile à manipuler et très rapide, et la syntaxe n'est pas lourde.

    La c’est que mon point de vue

  11. #11
    Membre émérite Avatar de reggae
    Profil pro
    Inscrit en
    Août 2005
    Messages
    773
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2005
    Messages : 773
    Par défaut
    Les algorithmes de la STL sont facilement applicables aux vecteurs, ce qui constitue un grand plus.

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

Discussions similaires

  1. convertir une matrice en un vecteur et vis versa
    Par mitchecool dans le forum C++
    Réponses: 1
    Dernier message: 04/02/2014, 18h10
  2. Convertir un texte normale en ascii et vis versa
    Par koKoTis dans le forum VBScript
    Réponses: 22
    Dernier message: 14/08/2006, 03h18
  3. Conversion anglais-francais et vis-versa
    Par lazzeroni dans le forum BIRT
    Réponses: 43
    Dernier message: 04/04/2006, 17h13
  4. C, C++ , Heure UTC -> local et vis versa
    Par fxp17 dans le forum Linux
    Réponses: 2
    Dernier message: 22/11/2005, 10h23
  5. Changement de mes tableaux en vecteur
    Par Bason_sensei dans le forum MFC
    Réponses: 11
    Dernier message: 22/10/2005, 18h24

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