不能将'std :: vector <arrayindex>(*)[2]'转换为'std :: vector <arrayindex> **'以将参数'1'转换为'void getNextRowColumn(std :: vector <arrayindex> **)'

时间:2018-06-17 18:00:47

标签: c++ vector

我有

struct ArrayIndex
{
    int rowIndex;
    int columnIndex;

};
void fn()
{
    vector<struct ArrayIndex> IntermediateIndex[2];
    getNextRowColumn(&IntermediateIndex);
}
void getNextRowColumn(vector<ArrayIndex>*  IntermediateIndex[2])
{
.................
}

它给出了错误 cannot convert ‘std::vector<ArrayIndex> (*)[2]’ to ‘std::vector<ArrayIndex>**’ for argument ‘1’ to ‘void getNextRowColumn(std::vector<ArrayIndex>**)’

1 个答案:

答案 0 :(得分:0)

我想你想将C数组作为参数传递给函数,然后你需要像

这样的东西
void fn()
{
    vector<ArrayIndex> IntermediateIndex[2];
    getNextRowColumn(IntermediateIndex);
}

void getNextRowColumn(vector<ArrayIndex>*  IntermediateIndex)
{
}

但是,由于问题标记为C++,您最好坚持使用C ++语义,例如

void fn()
{
    array<vector<ArrayIndex>, 2> IntermediateIndex;
    getNextRowColumn(IntermediateIndex);
}

void getNextRowColumn(array<vector<ArrayIndex>, 2>&  IntermediateIndex)
{
}

或者使用vector<vector<…>>,取决于你将要用它做什么