c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\vector(357): error C2664: 'std::vector<_Ty>::_Construct_n' : cannot convert parameter 2 from 'int' to 'const std::vector<_Ty> &'
Originally posted by AfricanDude
How do I populate a 3-d stl vector using a for statement?
I don't know exactly what you mean. You mean this?
Int3D My3DArray(10, Int2D(10, Int1D(10,0)));
int size1 = My3DArray.size();
for ( int i = 0; i < size1; ++i )
int size2 = My3DArray[i].size();
for (int j = 0; j < size2; ++j )
int size3 = My3DArray[i][j].size();
for ( k = 0; k < size3; ++k )
MyArray[i][j][k] = 15;
If you are talking about how do you size each of the dimensions, then that is a different question.
I have this interesting problem...
I have to use a c-library that contains a function that is defined as follow:
int func(char * cpData);
I have been using a structure accually a nested structure as follows
struct A nA;
struct B nB;
I can call this structure with now problems
func((char *) &sStream);
The problem happenes when
I wanted to use a vector for the float fData
such as the struct B is as follows:
vector< float> fData;
when I call the function I getting garbaged data.
I do take care of the reserving the appropriate data size for the vector
In fact I can see the data correctly at a point before I used this legecy
Is there a way I can convert somehow to c-array which the function understand
but be able to use the advantage of the vector.
So basically you need to serialize the data stored in the vector? That won't happen though a cast to char*. All that gives you is the memory-layout of the vector class itself, not the data it is storing. The same thing would happen if you had c-style strings (char*) in your structs. You would see the pointer, but not the string it is pointing to.
One solution to this is to implement operator >> and << for your structs to enable serialization to a std::ostream. (Or maybe your own serializer class.) Casting pointers like you do now, is something you really, really should not do if you aren't fully aware of the consequences.
Displaying a 3-dimensional vector on a 2-dimensional monitor is intrinsically difficult, so I would suggest using a 3D graphic library like OpenGL to display it.
But that's just me...
Yeah, thats what we are trying to do actually, were using glut and C++
i think how were gonna manage xyz is a single vector for x, single for y and single for z, just to keep it uncomplicated, then the vertex number would just be associated with the position [i] for any info.