c ++传递二维向量来起作用

时间:2016-10-05 19:19:37

标签: c++ vector

我需要将两维向量传递给我的函数。我尝试通过将迭代器传递给数组的开头来做到这一点。但是发生了错误。

using namespace std;

displayArrays(vector< vector< int > >::iterator map_b, vector< int >::iterator row_b, int n, int o){
    int i, j;

    for(i = 1; i <= n; i++)
    {
        for(j = 1; j <= n; j++)
        {
            cout << *map_b + 1;//error is here
        }
        cout << endl;
    }

    cout << endl;
    for(i = 1; i < o; i++)
    {
        cout  << *row_b++ << ' ';
    }
}

int main(){
    int n, o;

    cin >> n;

    vector< vector< int > > map(n, vector< int >( n ));
    //filling up array in loop

    o = n * n;
    vector< int > row(n*n);

    vector< vector< int > >::iterator map_b = map.begin();
    vector< int >::iterator row_b = row.begin();
    displayArrays(map_b, row_b, n, o);
}

[错误]不匹配&#39;运营商+&#39; (操作数类型是&#39; std :: vector&#39;和&#39; int&#39;)

1 个答案:

答案 0 :(得分:0)

也许你想要的是这个:

for(i = 1; i <= n; i++)
{
    for(j = 1; j <= n; j++)
    {
        cout << (*map_b)[j];
    }
    cout << endl;
    map_b++;
}