Connecting Tech Pros Worldwide Help | Site Map

How to use std::copy?

kathy
Guest
 
Posts: n/a
#1: Jan 24 '06
I have array:

double a[1024];
double b[1024];
std::vector <double> vDouble;

when I use:

std::copy(a,a+1024,vDouble.begin());

I got error.

How to use std::copy?

Also, Is the following usage correct?
std::copy(a,a+1024,b);

roberts.noah@gmail.com
Guest
 
Posts: n/a
#2: Jan 24 '06

re: How to use std::copy?



kathy wrote:[color=blue]
> I have array:
>
> double a[1024];
> double b[1024];
> std::vector <double> vDouble;
>
> when I use:
>
> std::copy(a,a+1024,back_inserter(vDouble));
>
> I got error.
>
> How to use std::copy?
>
> Also, Is the following usage correct?
> std::copy(a,a+1024,b);[/color]

Victor Bazarov
Guest
 
Posts: n/a
#3: Jan 24 '06

re: How to use std::copy?


kathy wrote:[color=blue]
> I have array:
>
> double a[1024];
> double b[1024];
> std::vector <double> vDouble;
>
> when I use:
>
> std::copy(a,a+1024,vDouble.begin());
>
> I got error.[/color]

Yes. Your vector is empty. You need to either resize it to 1024 elements
or copy to a 'back_inserter(vDouble)'.
[color=blue]
> How to use std::copy?
>
> Also, Is the following usage correct?
> std::copy(a,a+1024,b);[/color]

Yes.

V
Cy Edmunds
Guest
 
Posts: n/a
#4: Jan 25 '06

re: How to use std::copy?



"kathy" <yqin_99@yahoo.com> wrote in message
news:1138142243.335413.284680@g14g2000cwa.googlegr oups.com...[color=blue]
>I have array:
>
> double a[1024];
> double b[1024];
> std::vector <double> vDouble;
>
> when I use:
>
> std::copy(a,a+1024,vDouble.begin());
>
> I got error.
>
> How to use std::copy?
>
> Also, Is the following usage correct?
> std::copy(a,a+1024,b);
>[/color]

Victor's answer is correct of course, but actually this isn't a great usage
of std::copy. It is probably better to declare vDouble as

std::vector<double> vDouble(a, a+1024);

If your standard library implementation is any good this should prevent
anything ugly from happening (such as initializing all 1024 elements to 0.0
and then overwriting them immediately or doing all the bookkeeping for 1024
push_back operations).


Closed Thread