Как передать в функцию вектор?

Рейтинг: -2Ответов: 1Опубликовано: 19.11.2014

Вот попытался передать у функцию вектор - код не работает.

#include <iostream>
#include <iomanip>
#include <vector>
#include <iterator>
#include <algorithm>    
void f(const vector< vector<int> >int& k)
{
    for(int i=0;i<k.size();++i)
    {
        for(int j=0;j<k.size();++j)
        {
            cout<<k[i][j];
        }
        cout<<endl;
    }
}
void main()
{
    int n=5;int m=5;
    vector < vector <int> >v(n,vector <int> (m));
    for(int i=0;i<n;++i)
    {
        for(int j=0;j<m;++j)
        {
            v[i][j]=rand()%200-10;
        }
    }
    f(v);
}

Ответы

▲ 2

Начни с простого:

  1. Определи вектор, который хранит скалярные значения — минимальное изменение в программе: использовать std::vector<int> v; вместо vector<int> v; или using namespace std; (только для примера).
  2. Можно использовать шаблон или alias'ы, чтобы не повторять ручками определение типа вектора: template<class Container> void f(const Container& container);. Если удалось передать простой вектор (1D), то можно к следующему шагу перейти.
  3. Найти существующий или задать отдельный вопрос о том, как правильно использовать вектор для того, чтобы хранить 2D данные.