|
| [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
| |
|
|