0

我正在构建一个 CSVParser 库(使用类似于 Excel OLE 对象),以使用 Vectors 实现

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

任何想法如何实现这一点???

提前致谢

4

1 回答 1

0

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

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

RangeCells应声明为

vector<string> *RangeCells;

我猜它会工作得更好。

于 2012-08-08T06:12:29.673 回答