2012-08-08 114 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