2014-05-17 4 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); 
     //............ 
} 

을하지만. 나는이 코드를 사용하십시오 인덱스 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

당신은 데이터 형식이 필요합니다.

그래서 l_repr에 대한 typedef 키워드를 사용

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

너무 다른 오류 (들)가있을 수 있습니다.

+0

Thanks POW,이 방법이 좋습니다! 나는 그것이 바보 같은 실수라는 것을 알고 있지만, 나는 문제가 어디 있는지 생각하는 데 많은 시간을 낭비했다. – Christian

0

페어 INT의 목록의 벡터를 생성 할 수 있어야는

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

를 int로하지만 그것은 아주 지저분한 이후 나는, 당신이 그것을 사용하는 것이 무엇인지 모르겠어요.

+0

답변 주셔서 감사합니다.하지만 프로그램 헤더에 네임 스페이스를 선언합니다.) – Christian

관련 문제