2017-09-29 61 views
0

我想添加一些功能添加到我的代碼,但我不能讓我的所有參數右:如何獲得ELEMENTI函數C++

class Peak {    
    }; 

    class Ceil{ 

    }; 

    struct LessPath 
    { 
    }; 
    void aStar(priority_queue<Peak, vector<Peak>, LessPath> *openList, vector<vector<Ceil>> *ceiledMaze, int curY, int curX, int destY, int destX); 

    int main(){ 
     aStar(&openList, &ceiledMaze, KY, KX, 100,200); 
    } 

    void aStar(priority_queue<Peak, vector<Peak>, LessPath> *openList, vector<vector<Ceil>> *ceiledMaze, int curY, int curX, int destY, int destX) 
      { 
       cerr <<"element X - " << ceiledMaze[curY][curX])<<endl;  
      } 

如何獲得的ceiledMaze [CURY] [curX]值功能?

+0

不傳遞指針(除非你想允許'nullptr'在這種情況下,你應該檢查它)傳遞一個參考,而不是,然後卸下支架那是太多了...... [curX])' - >'... [curX]',那麼它應該沒問題 – user463035818

+2

btw你的問題應該包含一個[mcve]和你得到的錯誤信息 – user463035818

+1

通過引用而不是指針和你的生活會更容易。 – NathanOliver

回答

0

嘗試:

cerr << "element X - " << (*ceiledMaze)[curY][curX]) << endl; 

...你傳遞一個指針,其實身邊,你也應該檢查範圍,nullptr,等等,你訪問它的直接元素「矢量」 - 無。解引用。

下一個你可以嘗試像通過引用傳遞:

int main(){ 
    aStar(openList, ceiledMaze, KY, KX, 100,200); 
} 

void aStar(priority_queue<Peak, vector<Peak>, LessPath>& openList, vector<vector<Ceil>>& ceiledMaze, int curY, int curX, int destY, int destX) 
{ 
    cerr <<"element X - " << ceiledMaze[curY][curX])<<endl;  
}