/ Forside / Teknologi / Udvikling / C/C++ / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
C/C++
#NavnPoint
BertelBra.. 2425
pmbruun 695
Master_of.. 501
jdjespers.. 500
kyllekylle 500
Bech_bb 500
scootergr.. 300
gibson 300
molokyle 287
10  strarup 270
Clearing af stringstream i C++
Fra : Jesper Wolf Jesperse~


Dato : 12-06-03 23:30

Hej.
Jeg benytter flere steder i mine programmer stringstreams for at lave
formaterede strenge ud fra tal.
Til det formål benytter jeg en ostringstream.

Men jeg kan ikke finde nogen metode at resette sådan en ostringstream efter
at jeg har brugt den første gang, så idag dropper jeg den gamle og laver en
ny hver gang.

Jeg bilder mig ind at dette er ineffektivt, men kan simpelthen ikke finde en
metode der kan nulstille streamen.

Er der nogen der kan hjælpe ?

Det er lige før man har mere lyst til at bruge sprintf() og gammeldags char
arrays. Men den er jo ikke typesikker.

Med venlig hilsen
Jesper Wolf Jespersen



 
 
Mogens Hansen (13-06-2003)
Kommentar
Fra : Mogens Hansen


Dato : 13-06-03 06:20


"Jesper Wolf Jespersen" <wolfj@tiscali.dk.spam> wrote

[8<8<8<]
> Men jeg kan ikke finde nogen metode at resette sådan en ostringstream
efter
> at jeg har brugt den første gang, så idag dropper jeg den gamle og laver
en
> ny hver gang.

Du kan bruge funktionen (lidt forsimplet navngivet):
ostringstream::str(const string&);
til at sætte dens aktuelle streng.

<C++ kode>
#include <iostream>
#include <sstream>

int main()
{
using namespace std;
ostringstream os;

for(int i = 0; 10 != i; ++i) {
os.str("");
os << i;
cout << os.str() << endl;
}
}
</C++ kode>

>
> Jeg bilder mig ind at dette er ineffektivt, men kan simpelthen ikke finde
en
> metode der kan nulstille streamen.

Før du har målt at det er et problem, tror jeg ikke at det spiller nogen
rolle.
Jeg ville vælge at skrive koden tydelig, i forhold til hvad den skal lave,
frem for at forsøge at lave sådanne optimeringer uden at måle på
performance.

Venlig hilsen

Mogens Hansen



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408924
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste