作者DEMODULATION (DEMODULATION)
看板C_and_CPP
標題[問題] C & C++ 資料型態的轉換
時間Mon Jun 15 19:28:39 2009
因為各式各樣的理由
我需要把C語言的:
typedef float2 Complex;
Complex* data1 = (Complex*)malloc(sizeof(Complex) * data1_size);
轉換成C++裡的vector:
vector<dComplex> data2;
dComplex是定義成這樣
class dComplex{
public:
double dReal;
double dImag;
dComplex( double=0.0, double=0.0 );
dComplex operator=( dComplex );
dComplex operator+( dComplex );
dComplex operator-( dComplex );
dComplex operator*( dComplex );
dComplex divide( dComplex );
dComplex ComplexConj();
void set( double,double );
double getReal();
double getImag();
double abs();
double square();
};
兩者的資料長度是一樣的
請問我除了以下這種for loop,.push_back()這種寫法之外
有沒有其他更快的寫法呢???
for(int i=0; i<data1_Size; i++){
data2.push_back(dComplex(data1[i].x, data1[i].y));
}
先謝謝嚕~~
我試了一二樓大大給的方法
可因為我的資料型態又有dComplex又有Complex
所以好像一二樓的辦法都不能用
請問有沒有其他辦法咧???
感謝嚕~~
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.17.232
1F:推 Ebergies:禁術: data2.resize( data1_size); memcpy( &data2[0]... 06/15 19:42
2F:推 Fenikso:vector<float> data2(data1, data1+data1_size); 06/15 19:44
3F:推 legnaleurc:You may use std::copy 06/15 20:12
※ 編輯: DEMODULATION 來自: 140.112.17.232 (06/15 21:27)
4F:→ DEMODULATION:我把我的問題又寫詳細了些~~麻煩各位大大了~~感謝~~ 06/15 21:28
5F:推 sunneo:如果Complex是struct 那就為他繼承吧 或者為他寫個cpy ctor 06/16 11:26