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 :

Passer un vector<vector<char>> en argument d'une fontion


Sujet :

C++

  1. #1
    Membre confirm�
    Homme Profil pro
    �tudiant
    Inscrit en
    Mai 2014
    Messages
    45
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 30
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 45
    Par d�faut Passer un vector<vector<char>> en argument d'une fontion
    Bonsoir � tous,

    Mon probl�me est le suivant :
    j'ai cr�� un vecteur de vecteur de char soit :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    std::vector<std::vector<char>> tabCodage;
    Celui apr�s �tre initialis� avec des valeurs doit passer en argument d'une fonction, cependant il me renvoie le message d'erreur suivant :

    impossible de convertir le param�tre 1 de 'std::vector<_Ty>' en 'std::vector<_Ty> *'
    1> with
    1> [
    1> _Ty=char [8]
    1> ]
    1> and
    1> [
    1> _Ty=std::vector<char>
    1> ]
    1> Aucun op�rateur de conversion d�finie par l'utilisateur disponible qui puisse effectuer cette conversion, ou l'op�rateur ne peut pas �tre appel�
    Dans mon Fichier.h la fonction est d�clar� de la mani�re suivante :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    std::vector<char> codageATailleFixe( std::vector<std::vector<char>> *,std::vector<char> &);
    Et dans mon main je l'appel de cette mani�re :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    code.codageATailleFixe(&tabCodage, tabCara);
    Pouvez vous m'aider ?

    Cordialement,

    Fyejumpy

  2. #2
    Expert �minent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activit� : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par d�faut
    Salut,

    D�j�, juste un "tout petit d�tail" : pourquoi te fais tu ch...er � transmettre l'un de tes param�tres par r�f�rence et l'autre sous forme de pointeur

    D'autant plus que, dans le pire des cas, l'un pourra �tre modifi�, mais pas l'autre et dans le meilleur des cas, aucun ne devra �tre modifi� (ta fonction en remplicant en d�finitive un troisi�me). D�s lors, pourquoi ne pas transmettre le (les ) tableau(x) qui ne doivent pas �tre modifi�(s) sous la forme de r�f�rence constante et celui qui doit �tre modifi� (si tant est qu'il y en ait un) sous la forme d'une r�f�rence non constante

    PS : au passage, je ne suis vraiment pas fan des tableaux de tableaux... Ne serait-il pas int�ressant de remplacer cela par un tableau de caract�res et un tableau contenant des paires d'it�rateurs (le premier donnant sur le premier caract�res qui t'int�resse et le deuxi�me donnant sur le caract�re qui suit directement le dernier caract�re qui t'int�resse, histoire d'avoir l'�quivalent aux fonctions begin et end)

    Voire, parce que cela reste tout � fait envisageable, un tableau de caract�res (on ne change rien) et un tableau contenant une paire d'indice (meme chose : l'indice sur le premier caract�re et l'indice sur le caract�re qui suit le dernier, histoire d'avoir l'�quivalent � la fonction size() )

    Et bien sur, j'ai �cart� d'office -- mais ai-je eu raison de le faire -- ce qui serait sans doute la solution la plus simple : un tableau de... std::string...
    A m�diter: La solution la plus simple est toujours la moins compliqu�e
    Ce qui se con�oit bien s'�nonce clairement, et les mots pour le dire vous viennent ais�ment. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 f�vrier 2014
    mon tout nouveau blog

  3. #3
    Membre confirm�
    Homme Profil pro
    �tudiant
    Inscrit en
    Mai 2014
    Messages
    45
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 30
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 45
    Par d�faut
    Citation Envoy� par koala01 Voir le message
    Salut,

    D�j�, juste un "tout petit d�tail" : pourquoi te fais tu ch...er � transmettre l'un de tes param�tres par r�f�rence et l'autre sous forme de pointeur

    D'autant plus que, dans le pire des cas, l'un pourra �tre modifi�, mais pas l'autre et dans le meilleur des cas, aucun ne devra �tre modifi� (ta fonction en remplicant en d�finitive un troisi�me). D�s lors, pourquoi ne pas transmettre le (les ) tableau(x) qui ne doivent pas �tre modifi�(s) sous la forme de r�f�rence constante et celui qui doit �tre modifi� (si tant est qu'il y en ait un) sous la forme d'une r�f�rence non constante

    PS : au passage, je ne suis vraiment pas fan des tableaux de tableaux... Ne serait-il pas int�ressant de remplacer cela par un tableau de caract�res et un tableau contenant des paires d'it�rateurs (le premier donnant sur le premier caract�res qui t'int�resse et le deuxi�me donnant sur le caract�re qui suit directement le dernier caract�re qui t'int�resse, histoire d'avoir l'�quivalent aux fonctions begin et end)

    Voire, parce que cela reste tout � fait envisageable, un tableau de caract�res (on ne change rien) et un tableau contenant une paire d'indice (meme chose : l'indice sur le premier caract�re et l'indice sur le caract�re qui suit le dernier, histoire d'avoir l'�quivalent � la fonction size() )

    Et bien sur, j'ai �cart� d'office -- mais ai-je eu raison de le faire -- ce qui serait sans doute la solution la plus simple : un tableau de... std::string...

    bah enfa�te c'est un sujet de TP, pour une mati�re qui est de la compression et de la cryptographie. notre prof nous demande de cr�er une table de codage c'est � dire une table qui associe des caract�res avec leur code binaire d'o� l'utilisation d'un vecteur de deux dimensions en char.

    Du coup j'ai pr�f�r� utilis� un tableau de tableau, mais oui c'est pas le meilleur des choix...

    Donc voici avec les changements :

    Fichier.c
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    vector<char> CTF::codageATailleFixe(const vector<vector<char>> & tabCod,const  vector<char> &  tabCara)
    Fichier.h
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    std::vector<char> codageATailleFixe(const std::vector<std::vector <char>> &,const std::vector<char> &);
    L'erreur n'apparait plus par contre maintenant je suis en out of range ^^.

    Je vais essayer de r�gler �a !

    merci d'avoir r�pondu.

    Cordialement,

    Fyejumpy

  4. #4
    Expert �minent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activit� : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par d�faut
    Ben, un out of range, c'est facile : tu utilises (de toutes �vidences) un acc�s � base de at(), ce qui n'est d�j� pas bien du tout (je t'explique au besoin pourquoi je dis cela) mais, le gros probl�me, c'est que tu fais surement un peu de semoule au niveau de tes indexes : il faut pas essayer d'aller plus loin que tab.size()

    Je t'ai indiqu� la cause, mais, si tu veux qu'on trouve la ligne o� l'erreur survient, il faudra surement plus de code

    PS :En fait, la fonction at() n'aurait jamais du voir le jour... Mais bon, elle est l�, et on trouve un max d'imb�ciles (sans offence, n'est-ce pas ) pour d�cider de l'utiliser
    A m�diter: La solution la plus simple est toujours la moins compliqu�e
    Ce qui se con�oit bien s'�nonce clairement, et les mots pour le dire vous viennent ais�ment. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 f�vrier 2014
    mon tout nouveau blog

  5. #5
    Membre confirm�
    Homme Profil pro
    �tudiant
    Inscrit en
    Mai 2014
    Messages
    45
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 30
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 45
    Par d�faut
    Citation Envoy� par koala01 Voir le message
    Ben, un out of range, c'est facile : tu utilises (de toutes �vidences) un acc�s � base de at(), ce qui n'est d�j� pas bien du tout (je t'explique au besoin pourquoi je dis cela) mais, le gros probl�me, c'est que tu fais surement un peu de semoule au niveau de tes indexes : il faut pas essayer d'aller plus loin que tab.size()

    Je t'ai indiqu� la cause, mais, si tu veux qu'on trouve la ligne o� l'erreur survient, il faudra surement plus de code

    PS :En fait, la fonction at() n'aurait jamais du voir le jour... Mais bon, elle est l�, et on trouve un max d'imb�ciles (sans offence, n'est-ce pas ) pour d�cider de l'utiliser
    Franchement merci tu m'as vraiment aid� ! Tout mes probl�mes sont r�solus gr�ce � toi ! J'ai juste resize mon vecteur par rapport au vecteur pass� en param�tre et hop plus de out of range ! je ne l'avais pas initialis� ... Donc tout est bon

    Je passe le sujet en r�solu !

    Cordialement,
    Fyejumpy

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Vecteur de vecteur de vecteur ?
    Par oodini dans le forum C++
    R�ponses: 22
    Dernier message: 03/10/2011, 13h12
  2. R�ponses: 1
    Dernier message: 01/04/2010, 14h49
  3. Vecteurs de vecteurs de vecteurs
    Par El Charpi dans le forum C++
    R�ponses: 4
    Dernier message: 11/01/2010, 21h29
  4. passer un char** en argument
    Par ben_popcorn dans le forum C
    R�ponses: 11
    Dernier message: 26/03/2006, 21h57
  5. Vecteurs de vecteurs ?
    Par Edouard Kaiser dans le forum C++
    R�ponses: 16
    Dernier message: 02/05/2005, 14h39

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