Question on making one array equal another?
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,
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?
Could you be more specific by what you mean when they are equal? Are you treating them as sets?
by sets u mean just replace a''s array with b''s?
well thats what im trying to do.
memcpy worked fine anyway,
thanks
well thats what im trying to do.
memcpy worked fine anyway,
thanks
No, I meant as in set theory where they would be equal because they contain the same values.
memcpy or a for loop
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]
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]
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 loopfor(int i = -1; i<4; ++i){a[i] = b[i]}
std::copy(a, a + 4, b);
[How To Ask Questions|STL Programmer''s Guide|Bjarne FAQ|C++ FAQ Lite|C++ Reference|MSDN]
for(int i=0;i < 4;i++) a=b;<br> </pre> <br>Is the correct way to do it. However, I recommend using memcpy (for C) or std::copy (for C++). <br><br><SPAN CLASS=editedby>[edited by - brassfish89 on January 17, 2004 12:42:08 PM]</SPAN>
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;orstd::copy (a.begin(), a.end(), b.begin());
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement