線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1259
推到 Plurk!
推到 Facebook!

complex宣告與使用

尚未結案
blink182
一般會員


發表:4
回覆:2
積分:1
註冊:2002-04-22

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-09-06 17:12:16 IP:140.110.xxx.xxx 未訂閱
各位好 請教各位兩個問題 小弟最近在寫傅立葉,站上資源豐富, 讓小弟省了許多麻煩,先謝謝各位 不過遇到了complex的問題,請教各位 1.要宣告complex,是否加入這兩行即可 #include < complex > using namespace std; 這兩行是從help的範例抄下來的,第二行指的是蛇麼 因為我從來沒用過 2.以下程式碼發生錯誤訊息為 [C Error] Unit1.cpp(71): E2015 Ambiguity between 'std::pow(double,double)' and '_STL::pow(const _STL::complex &,int)' 程式碼
 
void __fastcall TForm1::FFT_Translation(Graphics::TBitmap *input,complex **fft_data)
{
        /*
                將input*(-1)^(i j)            */
        Byte *ptr1;            fft_data=new complex *[input->Height];
        for(int j=0;j<input->Height;j  ) fft_data[j]=new complex [input->Width];            for(int i=0;i<input->Height;i  )
        {
                ptr1=(Byte*)input->ScanLine[i];
                for(int j=0;j<input->Width;j  )
                {
                        fft_data[i][j]=complex(((pow(-1,i j))*(ptr1[3*j])),0.0);
                }
        }
}
發表人 - blink182 於 2005/09/06 17:21:44 發表人 - blink182 於 2005/09/06 17:40:13
justdo
高階會員


發表:2
回覆:359
積分:222
註冊:2004-08-17

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-09-06 20:03:01 IP:221.169.xxx.xxx 未訂閱
namespace 是所謂的命名空間 STL 所提供的諸多元件都是放在 std namespace裡面 所以要用的時候要指明使用的namespace是std 你可以進去complex檔案裡面看看, class complex 是宣告在std namespace 裡面的 第二個問題是你include的檔案中有兩個pow宣告符合你呼叫時的需求 一個是 std::pow(double, double) 、另一個是 _STL::pow(const _STL::complex &,int) ,因此編譯器發生困惑 一個解決方法是把 pow(-1,i j)改成 pow(-1, double(i j)),以便讓std::pow吻合 要不然就檢查一下你在那邊include到 _STL::pow ,把那個include檔刪除 還有一個方法是指定用其中一個, ex: pow(-1,i j)改成std::pow(-1,i j)
系統時間:2024-05-19 11:31:47
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!