【问题标题】:Getting a partial String Vector 2D array into another pointer vector array将部分字符串向量二维数组放入另一个指针向量数组
【发布时间】:2012-08-05 02:45:00
【问题描述】:

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

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

提前致谢

【问题讨论】:

    标签: c++ string vector multidimensional-array


    【解决方案1】:

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

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

    RangeCells 应声明为

    vector<string> *RangeCells;
    

    我猜它会更好。

    【讨论】:

    • 谢谢,很明显,我是向量的新手,能否告诉我如何动态地将 RangeCells(最初定义为向量的地址)更改为向量向量的地址,因为我可能会解释,范围对象可能不仅仅包含一行,这就是我选择多维度(向量的向量)的原因
    猜你喜欢
    • 2021-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-21
    相关资源
    最近更新 更多