Deklarowanie wektora 2D
W niektórych przypadkach działa tylko poniższy wiersz.Dlaczego?
vector< vector<int>> a(M,N);
To działa w każdym przypadku.
vector< vector<int>> a(M, vector<int> (N));
Co za różnica? 2 answers
std::vector
posiada konstruktor wypełnienia, który tworzy wektor n elementów i wypełnia się określoną wartością. a
mA typ {[2] } co oznacza, że jest wektorem wektora. Stąd domyślną wartością wypełnienia wektora jest wektor, a nie int
. Dlatego druga opcja jest prawidłowa.
std::vector<std::vector<int>> array_2d(rows, std::vector<int>(cols, 0));
Tworzy tablicę rows * cols 2D, gdzie każdy element ma wartość 0. Domyślną wartością jest std::vector<int>(cols, 0)
, co oznacza, że każdy wiersz ma wektor, który ma cols
liczbę elementów, każdy bycie 0.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-02-22 21:16:24
Aby zadeklarować wektor 2D musimy najpierw zdefiniować tablicę 1D o wielkości równej liczbie wierszy pożądanego wektora 2D. Niech chcemy utworzyć wektor wierszy k i kolumn m
"vector<vector<int>> track(k);"
Spowoduje to utworzenie wektora o rozmiarze K. następnie użyj metody resize.
for (int i = 0; i < k; i++) {
track[i].resize(m);
W ten sposób Można zadeklarować wektor 2D
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-11-11 13:11:50