精品偷拍一区二区三区,亚洲精品永久 码,亚洲综合日韩精品欧美国产,亚洲国产日韩a在线亚洲

  • <center id="usuqs"></center>
  • 
    
  • deque的用法

    deque的用法
    deque w_hist;
    w_hist = deque (50,NULL);這句話在32位機器上編譯報錯,是什么原因,怎么解決!
    把50換成50.0后,雖然編譯通過,但運行中斷!
    其他人氣:342 ℃時間:2020-05-12 22:57:23
    優(yōu)質(zhì)解答
    沒有看到有對應的構造函數(shù),下面是一個例子:
    #include <deque>
    #include <iostream>

    using namespace std;

    int main()
    {
    \x05cout<<"input total number:";
    \x05int n;
    \x05cin >> n;
    \x05
    \x05deque<double*> q;
    \x05for(int i=0;i<n;++i)
    \x05{
    \x05\x05double *tmp=new double;
    \x05\x05cout<<"input number "<<i+1<<":";
    \x05\x05cin>>*tmp;
    \x05\x05q.push_back(tmp);
    \x05}
    \x05
    \x05for(i=0;i<q.size();++i)
    \x05{
    \x05\x05double *tmp=q.at(i);
    \x05\x05cout<<*tmp<<" ";
    \x05}
    \x05cout<<endl;
    }我問題的重點在于,申明的時候,(50,NULL)這里是為了給容器分配初始值,如果類型不用指針的,都ok,但是只要用了double*類型,編譯器就會報錯“無法將int類型轉(zhuǎn)換為double*!”而這里的50代表的是有50個double*,又不是把int轉(zhuǎn)換為double*,不知道編譯器怎么這么理解,求解決方案。。。。

    在代碼中增加 deque<double*> qq(50,NULL);,VC6下沒有問題

    #include <deque>
    #include <iostream>

    using namespace std;

    int main()
    {
    cout<<"input total number:";
    int n;
    cin >> n;

    deque<double*> qq(50,NULL);
    deque<double*> q;
    for(int i=0;i<n;++i)
    {
    double *tmp=new double;
    cout<<"input number "<<i+1<<":";
    cin>>*tmp;
    q.push_back(tmp);
    }

    for(i=0;i<q.size();++i)
    {
    double *tmp=q.at(i);
    cout<<*tmp<<" ";
    }
    cout<<endl;
    }
    額,我在vs2010下試了,也沒問題! 但這句話來自開源代碼,我只能在ubuntu下跑,就遇到了問題。編譯器無法識別,我將置零的方法改了下,編譯通過了,但是matlab又中斷了。。。 我是在32位matlab(matlab、C++混合編程)上跑的,作者是在64位matlab上跑的,我看看是否和版本相關!希望你能解決不過還是吐槽一句:指針放在容器里面管理真沒有必要,不如直接將double放進去。不過你拿別人的代碼就另說了
    我來回答
    類似推薦
    請使用1024x768 IE6.0或更高版本瀏覽器瀏覽本站點,以保證最佳閱讀效果。本頁提供作業(yè)小助手,一起搜作業(yè)以及作業(yè)好幫手最新版!
    版權所有 CopyRight © 2012-2024 作業(yè)小助手 All Rights Reserved. 手機版