2012-08-08 90 views
0

我建立一個CSVParser庫(使用類似於Excel的OLE對象),要使用的載體獲取部分串矢量2D陣列到另一個指針矢量陣列

來實現的單元陣列被保存爲一個多維度串陣列中的主類CCSVParser

static vector< vector< string> > CellArray; 

和CRANGE類

vector< vector< string> >* RangeCells; 

埃德內的另一個指針數組它:使用指針陣列的目的是節省分配的空間,因爲該庫可以處理烏鴉類的的GetItem方法內大量數據

,我需要返回一個Range對象與其指針數組指向指向整個數組

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

當主CellArray的尋址的行

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

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

    return retRange; 
} 

向量數組指針能正常工作,但未能在CellArray

解決只是一個排

注: RangeCells指針數組必須是多維的,因爲在其他操作可能返回一組行

任何想法如何實現這一點???

預先感謝

回答

0

如果CellArray是(串)向量的向量,則CellArray[i]是(字符串)的載體。但是,您嘗試將其地址分配給指向矢量(字符串)矢量的指針,這是不可能的。

矢量的地址與矢量矢量的地址不相同。

RangeCells

vector<string> *RangeCells; 

我猜測它將會運行得更好聲明。

+0

謝謝你,很明顯,我是一個向量的新手 你可以告訴我如何動態改變RangeCells(最初定義爲向量地址)爲向量矢量的地址 ,正如我可能解釋的那樣,範圍對象可能包含的不止是一行,這就是爲什麼我選擇了multi-dim(向量向量) – motash 2012-08-08 08:54:13