Go4Expert

Go4Expert (http://www.go4expert.com/)
-   C (http://www.go4expert.com/forums/c/)
-   -   How to convert vector with datatype double to a vector with certain class datatype? (http://www.go4expert.com/forums/convert-vector-datatype-double-vector-t12876/)

Roy420 12Aug2008 11:56

How to convert vector with datatype double to a vector with certain class datatype?
 
The issue I am encountered with is… the same vector we read as double is to be used in another function, but with different data type as mentioned bellow. So I need a conversion function which performs this fact.

I have a class as follows

template <class T>
class NRVec {
private:
int nn; // size of array. upper index is nn-1
T *v;
public:
NRVec();
explicit NRVec(int n); // Zero-based array
NRVec(const T &a, int n); //initialize to constant value
NRVec(const T *a, int n); // Initialize to array
inline const T & operator[](const int i) const;
inline int size() const;
~NRVec();
};

I have a vector defined as follows

typedef const NRVec<DP> Vec_I_DP;
I have a another class having a function svdfit() and this function takes a argument (vector) with datatype from the class NRVec.

void AutoCompensation::svdfit(Vec_I_DP &x, Vec_I_DP &y)

The problem arises when I have my own vectors with type

typedef double DP;
vector <DP> v,Vect_XX_AT, Vect_YY_AT;


Now instead of using Vec_I_DP, I want to use my vector Vec_XX_AT. The problem is difference in the datatype. So I wanted to have a conversion function which converts vector from datatype Vec_I_DP(Vec_I_DP &x) to DP(vector <DP> Vect_XX_AT) as shown above.

How to do it??

Merci
:D

shabbir 12Aug2008 12:14

Re: How to convert vector with datatype double to a vector with certain class datatype?
 
You should use code block rather than Italics.

xpi0t0s 12Aug2008 12:35

Re: How to convert vector with datatype double to a vector with certain class datatype?
 
What you'll need to do is to create an array of doubles using double *arr=new double[Vect_XX_AT.size()] (now put a delete[] somewhere in such a way as it will cause a compiler error - forcing yourself to deal with it before proceeding), populate it from Vect_XX_AT, then you can use the NRVec(const T *a,int n) constructor.


All times are GMT +5.5. The time now is 06:12.