c++将二维矢量传递给函数

c++ pass two dimentional vector to function

本文关键字:函数 二维 c++      更新时间:2023-10-16

我需要传递二维向量到我的函数。我尝试通过将迭代器传递到数组的开头来实现。但是错误发生了。

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);
}

[Error]不匹配'operator+'(操作数类型为'std::vector'和'int')

也许你想要的是:

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