bonjour,
J'aimerais savoir si on peut convertir un
en entier?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 std::vector< std::string > m_VecDataRead
Merci d'avance.
bonjour,
J'aimerais savoir si on peut convertir un
en entier?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 std::vector< std::string > m_VecDataRead
Merci d'avance.
même réponse que pour convertir un string en int
http://cpp.developpez.com/faq/cpp/?p...RINGS_strtonum.
Sinon pour convertir un vecteur de string en vecteur de int tu pourrai utiliser l'algorithm transform
http://r0d.developpez.com/articles/algos-stl/
en gros :
Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 std::vector< std::string > m_VecDataRead; . . . std::vector< int > m_VecDataInt; std::transform(VecDataRead.begin(), VecDataRead.end(), std::back_inserter(VecDataInt), &StringToInt);
StringToInt est le foncteur qui converti une string en int
Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 int StringToInt (std::string &s) { std::istringstream iss( s); // convertir en un int int nombre; iss >> nombre; return nombre; }
la fonction transform n'est pas dans la classe de std!
J'ajoute ce code
et la librairire #include <algorithm>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 std::vector< int > m_VecDataInt; std::t(m_VecDataRead.begin(), VecDataRead.end(), std::back_inserter(m_VecDataInt), &StringToInt);
Mais j'ai toujours des erreurs.!!?
StringToInt: identifieur non déclaré
faut rajouter le foncteur
et
Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 int StringToInt (std::string &s) { std::istringstream iss( s); // convertir en un int int nombre; iss >> nombre; return nombre; }
#include <sstream>
Par contre évite de faire plusieurs poste pour le même problème... et essaie de comprendre les réponses que l'on te donne.
En meme temps, la c'est bien la preuve que faire le code pour qqun qui ne comprends pas la base, ça ne l'aide pas.
J'ai toujours 2 erreurs:
transform....5 arguments attendus-4 fournis
voir la déclarartion de std transform
J'ai du mal à comprendre. Il manque encore une librairie!! Je ne pense pas...
A toi de chercher un peu.
Essaie de comprendre ce que l'on te donne.
Sache que ce code marche (sous visual 2005 en tout cas).
Si tu ne cherche pas à comprendre, ça ne sert a rien. On est pas là pour faire ton exo, mais pour t'aider.
Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 #include <iostream> #include <sstream> #include <vector> #include <string> #include <algorithm> int StringToInt (std::string &s) { std::istringstream iss( s); // convertir en un int int nombre; iss >> nombre; return nombre; } int main(int argc, char **argv) { std::vector<std::string> vect(5); vect[0] = "0"; vect[1] = "1"; vect[2] = "2"; vect[3] = "3"; vect[4] = "4"; std::vector<int> vectint; std::transform(vect.begin(), vect.end(), std::back_inserter(vectint), &StringToInt); return 0; }
Maintenant si tu t'en fou, débrouille toi.
Ecoutez messieurs, j'ai eu des cours.
Je suis ingénieur de l'école supérieure des procédés électroniques et optiques renommée Polytech' Orléans.
J'ai eu un très grave accident de la route (plaque de verglas et j'ai heurté un arbre). J'ai eu un traumatisme crânien provoquant une hémiplégie droite.
Je sais que j'ai du mal mais j'ai tous mes souvenirs avant l'accident.
J'ai juste eu le temps de commencer à travailler et 3 semaines après, l'accident (27 février 2005).
Je sais que pour s'en sortir, il faut de l'aide. J'ai compris ça un peu tardivement. Je voulais reprendre une vie normale sans l'aide des autres. C'était une grosse bétise.
Je ne raconte pas ça pour que vous aillez pitié mais pour que vous compreniez ma situation. Alors si vous ne voulez plus m'aider, vous avez le droit.
Mais c'est généreux et gentil d'aider un être humain, qui a la volonté d'y arriver.
Au revoir.
Je suis désolé pour toi et je comprend ton problème...
Celà dit, on t'aide en te donnant des liens (FAQ C++) ou des éléments de réponses (exemple ICI où les réponses sont nombreuses et détaillées)
On ne peux PAS faire mieux.
L'étape d'après, c'est de te plonger dans un bouquin, et de tranquillement le lire. Tu mettras le temps que tu mettras, mais ça viendra... En continuant comme tu le fais, je pense personnellement que tu n'iras nulle part. En effet, dans un post on t'as donné une réponse à un problème. Jusque là, tout va bien. Nous sommes un forum d'entre aide, donc ça nous fait plaisir de t'aider.
MAIS deux jours après tu reposes le même problème, à une variante près. Si tu avais vraiment compris notre réponse du post d'avant, tu n'aurais pas posé cette question... Tu manques donc de travail en profondeur... Ca ne sert à rien de courir après de nouveaux problèmes si tu n'as pas assimilés les précédents.
Je comprend que ça soit difficile pour toi de t'y remettre, mais tu dois comprendre aussi que notre rôle n'est pas de donner des réponses toute crue. On ne peut pas faire plus que te donner des éléments de réponse. C'est à toi de construire ton nouveau monde (la programmation) à partir des éléments qu'on te donne, et ça prend du temps...
La plupart de tes questions sont dans la FAQ C++. Si tu ne comprends pas les questions de la FAQ, alors demande nous, on se fera un plaisir de te répondre.
J'ai personnellement parcouru et lu la FAQ C++ entière plusieurs fois. C'est une mine d'informations... Ce serait dommage de ne pas en profiter.
Aide toi et le ciel t'aidera. Si tu ne fais pas l'effort de réfléchir et comprendre nos réponses, ça ne sert à rien de poser les questions... Tu feras du sur place, et nous donneras l'impression de perdre notre temps...
Bonne continuation et bonne patience.
Je ne comprends pas cette ligne de code
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 std::transform(vect.begin(), vect.end(), std::back_inserter(vectint), &StringToInt);
Faut-il déclarer cette fonction? Je ne pense pas...
Pour moi, il manque un autre paramètre dans cette fonction...
Vous n'êtes vraiment pas sympas avec moi.
Aide moi, svp
Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 std::transform(vect.begin(), vect.end(), std::back_inserter(vectint), &StringToInt);
- std::transform : applique une fonction à un ensemble d'element d'un conteneur et met le resultat dans un autre
- vect.begin() : debut des element du conteneur d'entré
- vect.end() : fin des element du conteneur d'entré .
Comme on va de begin() à end(), on traite tout les éléments du conteneur d'entrée.
std::back_inserter(vectint) : créé un iterateur spéciale qui va empiler les resultat a la fin du conteneur de sortie
- &StringToInt : pointeur sur le foncteur qui représente le traitement que l'on veut appliquer.
pour ton cas, faut rajouter le foncteur
Code c++ : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 int StringToInt (std::string &s) { std::istringstream iss( s); // convertir en un int int nombre; iss >> nombre; return nombre; }
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager