我正在使用向量构建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指针数组需要是多维的,因为在其他操作中它可能会返回一组行
任何想法如何实现这个???
提前致谢
答案 0 :(得分:0)
如果CellArray
是向量(字符串)的向量,则CellArray[i]
是一个向量(字符串)。但是,您尝试将其地址分配给指向矢量(字符串)向量的指针,这是不可能的。
向量的地址与向量向量的地址不同。
RangeCells
应声明为
vector<string> *RangeCells;
我猜它会更好用。