/ 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
[C++] Convertering fra vector<double> til ~
Fra : Troels Arvin


Dato : 16-01-04 22:36

Hej,

Hvordan kan man konvertere fra vector<double> til vector<int>, ifald
konverteringen ikke vil betyde, at man smider information væk? Skal man
gøre det manuelt? Jeg er klar over, at det nogle gange vil fejle, idet en
double-værdi kan have decimaler, og derfor ikke kan konverteres til int
uden videre, osv.

Jeg tænkte dog, at der måske fandtes en
whatever_cast< vector<int>* >(vector<double>*)
som kan bruges til mit formål? Den kunne måske smide en exception eller
returnere en 0-pointer i tilfælde af manglende mulighed for konvertering.

--
Greetings from Troels Arvin, Copenhagen, Denmark


 
 
Mogens Hansen (16-01-2004)
Kommentar
Fra : Mogens Hansen


Dato : 16-01-04 22:57


"Troels Arvin" <troels@arvin.dk> wrote:

>
> Hvordan kan man konvertere fra vector<double> til vector<int>, ifald
> konverteringen ikke vil betyde, at man smider information væk? Skal man
> gøre det manuelt? Jeg er klar over, at det nogle gange vil fejle, idet en
> double-værdi kan have decimaler, og derfor ikke kan konverteres til int
> uden videre, osv.

Ja, du risikere tab af information, men ikke anderledes end når du
konverterer en enkelt double til en int.

>
> Jeg tænkte dog, at der måske fandtes en
> whatever_cast< vector<int>* >(vector<double>*)
> som kan bruges til mit formål? Den kunne måske smide en exception eller
> returnere en 0-pointer i tilfælde af manglende mulighed for konvertering.

Der findes ikke et cast, men du kan bruge den constructor, der tager 2
iteratorer:

void foo(vector<int>& vi)
{
vector<double> vd(vi.begin(), vi.end());
}

Venlig hilsen

Mogens Hansen



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

Månedens bedste
Årets bedste
Sidste års bedste