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 :

istringstream


Sujet :

SL & STL C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut istringstream
    bonjour,
    sur ce site
    http://www.cplusplus.com/reference/i...ingstream.html
    il explique dans ce code


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    std::string ligne("zazayiezgazgeazyueiazeyui")
     
    std::istringstream is(ligne);
    le constructeur de istringstream va recopie la ligne en interne.
    Existe y'il une methode pour évité cela?? et par exemple utiliser directement la string au lieu de la copier?

  2. #2
    Membre émérite

    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    717
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 717
    Par défaut
    Il y a bien l'ancien std::strstream mais il est plus ou moins deprecated et son utilisation est plus ardue.

    Donc, comme toute optimisation, c'est à utiliser que si le profiler indique un goulot d'étranglement à ce niveau, c'est à dire presque jamais.

  3. #3
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Citation Envoyé par Sylvain Togni Voir le message
    Il y a bien l'ancien std::strstream mais il est plus ou moins deprecated et son utilisation est plus ardue.

    Donc, comme toute optimisation, c'est à utiliser que si le profiler indique un goulot d'étranglement à ce niveau, c'est à dire presque jamais.
    Merci,
    c'est plus pour de la culture générale .
    Mais si l'on doit traiter beaucoup de texte, cela peut peut être optimiser

  4. #4
    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
    Par défaut
    Citation Envoyé par Sylvain Togni Voir le message
    Il y a bien l'ancien std::strstream mais il est plus ou moins deprecated
    Aux dernières nouvelles, ce serait plutôt moins que plus.
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

  5. #5
    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,

    L'un dans l'autre, il ne faut passer par un *strignstream que si tu as besoin... de convertir une chaine en quelque chose ou vice versa...

    Sinon, la classe string permet à peu près tout ce que tu peux souhaiter faire avec les chaines de caractères... A tel point que d'aucuns en arrivent à la considérer comme la "classe poubelle" de la SL
    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

  6. #6
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Citation Envoyé par koala01 Voir le message
    Salut,

    L'un dans l'autre, il ne faut passer par un *strignstream que si tu as besoin... de convertir une chaine en quelque chose ou vice versa...
    ?? ben oui, mais aussi de decouper une string, et faire des traitement "lissible" comment prendre les caractère 2 à 2...

    Citation Envoyé par koala01 Voir le message
    Sinon, la classe string permet à peu près tout ce que tu peux souhaiter faire avec les chaines de caractères... A tel point que d'aucuns en arrivent à la considérer comme la "classe poubelle" de la SL
    Ben non, sinon il n'y aurait pas besoin des stringstream.

    Enfin bon. Tout ça serait une longue histoire

  7. #7
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    J'ai regardé strstream. Mais faut passer un buffer et sa taille. Pas terrible pour interfacer une string...
    ET il n'y as pas la même chose pour les string...

  8. #8
    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
    Citation Envoyé par Mongaulois Voir le message
    ?? ben oui, mais aussi de decouper une string, et faire des traitement "lissible" comment prendre les caractère 2 à 2...
    Ben, tu peux très bien jouer sur un truc du genre de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    for(size_t i=0;i<str.size()/2;i++)
    {
        string recup=str[i*2]+(str.size()%2 ==0 ? str[i*2+1] : "");
        cout recup;
    }
    (non testé, mais l'idée est là
    Ben non, sinon il n'y aurait pas besoin des stringstream.

    Enfin bon. Tout ça serait une longue histoire
    En fait, les stringstream sont à utiliser pour convertir les valeurs en caractères...

    Dés lors, le fait que les méthodes de la std::string la font passer aux yeux de certains pour une "poubelle" n'est pas du tout incompatible avec la présence des stringstream
    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

Discussions similaires

  1. Flux istringstream -> Caractère de separation
    Par Zenol dans le forum SL & STL
    Réponses: 3
    Dernier message: 13/02/2007, 16h54
  2. conversion avec istringstream
    Par dj.motte dans le forum SL & STL
    Réponses: 5
    Dernier message: 23/10/2006, 22h02
  3. conversion std::string en std::istringstream
    Par flipper203 dans le forum SL & STL
    Réponses: 3
    Dernier message: 06/07/2006, 18h34
  4. utilisation d'un istringstream
    Par Biosox dans le forum SL & STL
    Réponses: 8
    Dernier message: 09/01/2006, 10h15
  5. std::istringstream
    Par tut dans le forum SL & STL
    Réponses: 10
    Dernier message: 31/01/2005, 10h23

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