将部分String Vector 2D数组转换为另一个指针向量数组

时间:2012-08-08 02:40:22

标签: c++ string vector multidimensional-array

我正在使用向量构建CSVParser库(使用类似于Excel OLE对象)

单元格数组在主类CCSVParser

中保存为多维字符串数组
static vector< vector< string> > CellArray;

和CRange类中的另一个指针数组

vector< vector< string> >* RangeCells;

编辑:使用指针数组的目的是节省分配的空间,因为库可能处理大量数据

在CRows类的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指针数组需要是多维的,因为在其他操作中它可能会返回一组行

任何想法如何实现这个???

提前致谢

1 个答案:

答案 0 :(得分:0)

如果CellArray是向量(字符串)的向量,则CellArray[i]是一个向量(字符串)。但是,您尝试将其地址分配给指向矢量(字符串)向量的指针,这是不可能的。

向量的地址与向量向量的地址不同。

RangeCells应声明为

vector<string> *RangeCells;

我猜它会更好用。