Problem z dynamicznym vectorem dwuwymiarowym

0

Czemu mi ten kod się nie chcę skompilować ?

#include<iostream>
#include<vector>
#include<windows.h>

using namespace std;

int main()
{
    int n,m;
    cout<<"Podaj wymiary"<<endl<<"m= ";
    cin>>m;
    cout<<"n= ";
    cin>>n;
    vector<vector<int> > wektor(m,n);
    for(int i=0; i<m; i++)
    {
        for(int j=0; j<n; j++)
        {
            cout<<"element wektor["<<i<<"]["<<j<<"]= ";
            cin>>wektor[i][j];
        }
    }
    for(int i=0; i<m; i++)
    {
        for(int j=0; j<n; j++)
            cout<<wektor[i][j];
        cout<<endl;
    }

    system("PAUSE");
    return 0;
} 

A poza tym chciałbym się dowiedzieć jak wypełnić tablicę taką jak poniżej:

#include <iostream>
#include <vector>
#include <conio.h>

using namespace std;

void Funkcja(vector<vector<int> > kk, int n)
{
	for(int w=0; w<n; ++w)
	{
		for(int k=0; k<n; ++w)
		{
			kk// chcialbym ją wypełnić jak zwyklą tablicę dwuwymiarową 
		}
	}	
}
int main(void)
{	
	int n = 4;
	
	vector< vector <int> >tab;
	
	Funkcja(kk, n);
	
	getch();
	return 0;
} 
0
vector< vector<int> > tab(m , vector<int>(n));

Kazdy wiersz jest tak naprawde nowym vectorem, wiec 1 paramter przy tab[i][j] tj. "i" wybiera najpierw dany vector a drugi odpowiednia "komorke" z tego vectora.

co do wypelniania vectora to trzeba go wypelniac wlasnie vectorami nizszego rzedzu. tj.

vector<int> tmp;
int dane;
 // zakladamy ze wczesniej zainicjowales rozmiar vectora
for(int i=0;i<tab.size();i++) // iterujemy po wierszach
{
    for(int j=0;j<tab[0].size();i++) // po kolumnach
        {
            cin >> dane;
            tmp.push_back(dane);
        }
    tab.push_back(tmp);
    tab.clear();
}

pisane bezposrednio w przegladarce nie sprawdzalem ale powinno byc ok.

1 użytkowników online, w tym zalogowanych: 0, gości: 1