Archived

This topic is now archived and is closed to further replies.

johnnyBravo

Question on making one array equal another?

Recommended Posts

johnnyBravo    100
Ive got: int a[4]={0,1,2,3}; int b[4]={3,2,1,0}; how would i make a equal b in one line? or is that possible eg something like a=b(tried this, doesn''t work) thanks,

Share this post


Link to post
Share on other sites
Mathematix    259
The reason why it didn''t work is because you have not overloaded (defined your own implementation for) the = operator.

Could you be more specific by what you mean when they are equal? Are you treating them as sets?

Share this post


Link to post
Share on other sites
Ademan555    361
memcpy or a for loop


for (int i = 0; i<4; i++)
{
a[i] = b[i]
}


it may loop one extra time (for loops have always confused me a bit) but im pretty confident this doesnt

oh.... one line....

[edited by - Ademan555 on January 16, 2004 11:42:21 AM]

Share this post


Link to post
Share on other sites
Programmer16    2321
Yours is one line Ademan:


for (int i = 0; i<4; i++){a[i] = b[i]}

// And correct me if I''m wrong, but if you change it to this, it

// shouldn''t run the extra loop

for(int i = -1; i<4; ++i){a[i] = b[i]}

Share this post


Link to post
Share on other sites
brassfish89    122

for(int i=0;i < 4;i++)
a[ i ]=b[ i ];

Is the correct way to do it. However, I recommend using memcpy (for C) or std::copy (for C++).

[edited by - brassfish89 on January 17, 2004 12:42:08 PM]

Share this post


Link to post
Share on other sites
Amnesty    174
Use boost::array class its handy indeed.


boost::array<int,4> a = {{0,1,2,3}};
boost::array<int,4> b = {{2,4,6,8}};
a = b;
or
std::copy (a.begin(), a.end(), b.begin());



Share this post


Link to post
Share on other sites