Accueil > Forum > > > > STL : algo. for_each et Objet fonction
STL : algo. for_each et Objet fonction
mercredi 22 février 2006 à 10:39:25 |
STL : algo. for_each et Objet fonction

fm29
|
Bonjour,
l'idée est assez simple. Comment puis je récupérer une variable/instance de type vector après l'appel l'algorithm for_each.
Comme dans l'exemple. Je parcours une string. pour chaque car. convertit en entier que je place dans un vector<int>.
Mais après l'appel à for_each comme puis je accéder au vector ?
merci d'avance
Frédéric
class ConvertCharToInt
{
vector<int> vFmt;
public:
void operator() (char c)
{
vFmt.push_back(atoi(c));
}
};
class CFmt
{
public :
string szFmt;
void GetStringFormat(const string a){ szFmt= a;};
void SplitFmt(){
std::for_each(szFmt.begin(),szFmt.end(),ConvertCharToInt());
};
};
main()
{
CFmt *obj;
obj= new CFmt;
obj->GetStringFormat("123456");
obj->SplitFmt();
delete obj;
}
|
|
mercredi 22 février 2006 à 13:01:01 |
Re : STL : algo. for_each et Objet fonction

Alpacha
|
Que penses-tu de mettre : vector<int>& getVector() const { return vFmt; } dans ta class ConverCharToInt ?
|
|
mercredi 22 février 2006 à 13:06:17 |
Re : STL : algo. for_each et Objet fonction

fm29
|
Pourquoi pas... mais comment puis je appeller la méthode ?
Car je n'ai pas d'instance de classe ConvertCharToInt
|
|
mercredi 22 février 2006 à 13:11:26 |
Re : STL : algo. for_each et Objet fonction

Alpacha
|
Ah oui je n'avais pas vu. Hé bien tu peux procéder comme ça : Tu mets ton vector dans une autre class, disons vFmt. dans ConvertCharToInt tu demande un char, comme là, mais aussi un vector<int> par référence, pour le remplir avec les int. Tu créés une instance de vFmt avant le for_each. Tu passes comme prévu le vector de vFmt à ConvertCharToInt, dans le for_each. Et après le foreach, ton vector est donc rempli et tu peux y accéder.
|
|
mercredi 22 février 2006 à 13:58:37 |
Re : STL : algo. for_each et Objet fonction

fm29
|
marche pas... :)
car comment puis je lui passer le paramètre char ????
class vFmt
{
public :
vector<int> vFmt;
};
class ConvertCharToInt
{
public:
void operator() (char c,vector<int>& vFmt)
{
vFmt.push_back(atoi(c));
}
};
class CFmt
{
public :
string szFmt;
void GetStringFormat(const string a){ szFmt= a;};
void SplitFmt(){
vFmt vect;
std::for_each(szFmt.begin(),szFmt.end(),ConvertCharToInt(vect.vFmt));
};
};
main()
{
CFmt *obj;
obj= new CFmt;
obj->GetStringFormat("123456");
obj->SplitFmt();
delete obj;
}
|
|
mercredi 22 février 2006 à 14:33:59 |
Re : STL : algo. for_each et Objet fonction

Alpacha
|
Quelle est l'erreur? Et en inversant l'ordre des arguments de ConvertCharToInt ?
|
|
mercredi 22 février 2006 à 14:50:32 |
Re : STL : algo. for_each et Objet fonction

fm29
|
Même en inversant l'ordre des arguments.. Dans ."void operator() (char c,vector<int>& vFmt) ??" .--->
void operator() (vector<int>& vFmt,char c) -- Pareil
(S) An expression of type "std::vector<int,std::allocator<int> >" cannot be converted to type "ConvertCharToInt".I)
(I) The call does not match any parameter list for "ConvertCharToInt::ConvertCharToInt".
(I) "implicit ConvertCharToInt::ConvertCharToInt(const ConvertCharToInt &)" is not a viable candidate.
(I) An expression of type "std::vector<int,std::allocator<int>
>" cannot be converted to type "const ConvertCharToInt &".
|
|
mercredi 22 février 2006 à 14:56:05 |
Re : STL : algo. for_each et Objet fonction

Alpacha
|
Bizarre ... il croit que l'on appelle le constructeur de copie ... Au pire tu peux spécifier comme ça : for_each(...,...,ConvertCharToInt::operator(vec.vFmt)); Qui sait? :p Et est-ce que en mettant le vector dans ConvertCharToInt et en créant une instance de ce dernier, ca arrangerait pas le pb, tout simplement ?
|
|
mercredi 22 février 2006 à 15:03:58 |
Re : STL : algo. for_each et Objet fonction

fm29
|
:))
Alors .... first )
(S) The operator symbol is not recognized.
next )
non plus. ai déjà essayé.
|
|
mercredi 22 février 2006 à 15:24:48 |
Re : STL : algo. for_each et Objet fonction

Alpacha
|
Je crosi avoir trouvé ... class ConvertCharToInt { vector<int> vFmt; public: void operator() (char c) { vFmt.push_back(atoi(&c)); } vector<int>& getVector() { return vFmt; } };
class CFmt { public : string szFmt; void GetStringFormat(const string a){ szFmt= a;}; vector<int>& SplitFmt(){ ConvertCharToInt ccti = std::for_each(szFmt.begin(),szFmt.end(),ConvertCharToInt()); return ccti.getVector(); } }; main() { CFmt *obj; obj= new CFmt; obj->GetStringFormat("123456"); vector<int> v = obj->SplitFmt(); delete obj; }
Reste à voir si atoi() fait bien son boulot, car je préfère les stringstream (<sstream>) ...
|
|
Cette discussion est classée dans : for, each, vector, obj, szfmt
Répondre à ce message
Sujets en rapport avec ce message
directives conditionnelles [ par leprov ]
salut a tous. je suis face a une erreur qui me semble bizzarre, autant j'ai fait une connerie enorme et je vais m'en rendre compte tt seul mais la ca
la fonction for_each [ par marjolaine1 ]
Bonjour :j'utilise un vecteur générique "vect", for_each(vect.begin(),vect.end(),fonction);s'il vous plaît pourr
For Each ou équivalent? [ par spomky ]
Je vous explique mon soucis.j'ai un document XML qui ressemble a ceci: Button1 Salut
boucles for... [ par norton ]
bonjour,je voudrai pouvoir calculer et voire le nombre de fois que mon programme vérifie le contenu de la boucle (voire si une variable a la valeur de
petit probleme de pause [ par sozer2 ]
Bonjour je suis débutant en C++ et j'ai un ptit problemeJe souhaite faire une pause sous linux mais la fonction system("pause"); ne marche que sous wi
Compil ATL [ par hm1964 ]
Je m'arrache les cheveux avec le pblm suivant :je cherche à compiler le programme VMRPip9 (exemple directshow) et j'ai un souci avec le link : il ne t
[C++ 7(.NET)]Création d'un vector ou tableau Object [ par sfouilloux ]
bjr,comment créer un tableau d'objet ou un vecteur en c++ managé sous VS.NET 2003.Merci
BOUCLE for [ par juliansk ]
je cherche comment générer une suite logque a 4 termes.ex:2 4 8 16. J'ai imaginé le faire de cette manière: je génère un premier chiffre avec la fonct
Segmentation Fault....en traitement d'image [ par psysta ]
Bonjour,je suis nouveau dans la programmation en C. J'ai un programme Matlab qui marche bien, et je souhaiterais l'implémenter en C. Le pgm compile bi
Problème delete tableau dynamique [ par ttfl ]
Bonjour,je suis débutant en c++.Quelqu'un pourrait il me dire pourquoi le programme suivant plante à la dernière instruction (delete [] tableau;) svp
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Forum
MATLAB PROGRAMME MATLAB PROGRAMME par wahab1087
Cliquez pour lire la suite par wahab1087 RGB2GRAYRGB2GRAY par musa18
Cliquez pour lire la suite par musa18
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|