2012-08-08 4 views
0

다른 포인터 벡터 배열로 부분 문자열 벡터 2 차원 배열을 얻기 셀 어레이가 다중 치수 문자열로 저장됩니다 벡터내가 (엑셀 OLE 개체와 유사한 사용) CSVParser 도서관을 짓고 있어요

를 사용하여 구현한다 메인 클래스의 CCSVParser

static vector< vector< string> > CellArray; 

과 CRange 클래스

vector< vector< string> >* RangeCells; 

에드 안에 다른 포인터 배열의 배열 이 : 포인터 배열을 사용하는 목적은 도서관 까마귀 클래스의를 GetItem 방법 안에 많은 양의 데이터

을 처리 할 수 ​​있기 때문에, 할당 된 공간을 저장하는 것입니다, 나는 그것의 포인터 배열을 가리키는 Range 개체를 반환해야 주요 CellArray의 해결 행

CRange* CRows::GetItem(int idxRow) 
{ 
    CRange* retRange = new CRange ; 

    retRange->RangeCells = (vector< vector<string> >*)&CCSVParser::CellArray[idxRow] ; 

    return retRange; 
} 

벡터 배열 포인터는 전체 배열

retRange->RangeCells = (vector< vector<string> >*)&CCSVParser::CellArray ; 

를 가리키는 경우 잘 작동하지만 CellArray

단지 행을 해결 실패

참고 : RangeCells 포인터 배열은 다른 작업에 행

모든 아이디어를 어떻게 이행하는 집합을 반환 할 수 있기 때문에, 다차원 할 필요가 ??? 미리

답변

0

CellArray 경우에

감사 (문자열) 벡터의 벡터이고, 다음은 CellArray[i] (문자열) 벡터이다. 그러나 벡터의 벡터 (문자열)에 대한 포인터에 해당 주소를 할당하려고 시도했지만 불가능합니다.

벡터의 주소가 벡터 벡터의 주소와 같지 않습니다. 내가 훨씬 더 잘 작동 것 같은데요

vector<string> *RangeCells; 

RangeCells

선언해야한다.

+0

분명히, 나는 벡터의 초보자이다 RangeCells (처음에는 벡터의 주소로 정의 됨)가 벡터의 벡터 주소 인 으로 동적으로 변경하는 방법을 말해 줄 수 있습니까? 범위 객체는 단지 행 이상을 포함 할 수 있습니다. 그래서 나는 다중 - 희미한 (vector of vectors) 벡터를 선택했습니다. – motash

관련 문제