2014-05-17 677 views
0

我與私有屬性的類:無效類型「INT [INT]」的數組下標<對<int,int>>

class Ranking { 
private: 
    struct empar { 
     int id_org; 
     list <pair <int,int> > l_repr; 
    }; 

    vector <empar> rank; 
}; 

現在,我已經改變了這種類,因爲整數id_org沒有按沒用。

class Ranking { 
private:  
list <pair <int,int> > l_repr; 
vector <l_repr> rank; 

//............. 
}; 

我可以訪問,使用此代碼支柱:

void Ranking::sort_ranking(int id_1, int id_2, int id_3) 
     list <pair <int,int> >:: iterator it = rank[id_1].l_repr.end(); 
      pair<int,int> rep; 
     rep.first = id_1+1; 
     rep.second = id_3; 
     rank[id_pad].l_repr.insert(it, rep); 
     //............ 
} 

但是,我現在該怎麼改變編譯器崩潰時

宣言私人atributes類。

當我想訪問列表througt我用這個代碼指數:

void Ranking::sort_ranking(int id_1, int id_2, int id_3) 
{ 
list <pair <int, int> > l1= rank[id_1]; 
list <pair <int,int> >:: iterator it = l1.end(); 

// ... 
} 

編譯器給我這個消息,我不知道這意味着 `

Ranking.cpp: In member function ‘void Ranking::sort_ranking(int)’: Ranking.cpp:52:21: error: invalid types ‘int[int]’ for array subscript Ranking.cpp:52:47: error: invalid types ‘int[int]’ for array subscript Ranking.cpp:55:26: error: invalid types ‘int[int]’ for array subscript Ranking.cpp:55:53: error: invalid types ‘int[int]’ for array subscript Ranking.cpp:56:22: error: invalid types ‘int[int]’ for array subscript Ranking.cpp:56:49: error: invalid types ‘int[int]’ for array subscript

  • 你想要是否有可能創建vectorlist <pair <int,int> >
  • 如何從vector訪問list

非常感謝

+4

您的問題將受益於[最小,完整,可驗證示例](http://stackoverflow.com/help/mcve)。請創建一個,這樣我們可以更好地幫助你。你甚至可以在創建時自己找到答案。 – chris

+0

感謝您的澄清,現在我重新編輯帖子。對不起 – Christian

+0

哪一行是56行? – sepp2k

回答

3

對於容器模板,你需要的數據類型。

所以使用typedef關鍵字爲l_repr

typedef list <pair <int,int> > l_repr; 
// ^^^ 
vector <l_repr> rank; 

可能有其他錯誤(S)了。

+0

謝謝POW,這是一個很好的解決方案!我知道這是一個愚蠢的錯誤,但我浪費了很多時間去思考問題出在哪裏。 – Christian

0

應該可以創造對INT的列表的載體,詮釋

std::vector<std::list<std::pair<int, int>>> v; 

但我不知道你會用什麼,對,因爲它是相當混亂。

+0

感謝您的回答,但我在程序標題中聲明瞭一個名稱空間;) – Christian

相關問題