#c
#c
Вопрос:
Могу ли я создать
vector<vector<int> >
используя конструктор повторяющихся последовательностей?
Я знаю, что могу создать такой
vector<int> v(10, 0);
но я не знаю, как построить вектор vector, используя этот же метод. Спасибо!
Ответ №1:
Просто передайте ему вектор в качестве второго параметра:
// 10 x 10 elements, all initialized to 0
vector<vector<int> > v(10, vector<int>(10, 0));
Ответ №2:
vector<vector<int> > v(10, vector<int>(30, 0));
создало бы десять векторов с 30 нулями в каждом.
Ответ №3:
explicit vector ( size_type n, const Tamp; value= T(), const Allocatoramp; = Allocator() );
Конструктор повторяющихся последовательностей: инициализирует вектор с его содержимым, установленным на повторение, n
раз, копий value
.
vector< vector<int> > vI2Matrix(3, vector<int>(2,0));
Создает 3 вектора с 2 нулями в каждом.
По сути, можно было бы использовать вектор векторов для представления двумерного массива.
Вот пример исходного кода:
#include <iostream>
#include <vector>
using namespace std;
main()
{
// Declare size of two dimensional array and initialize.
vector< vector<int> > vI2Matrix(3, vector<int>(2,0));
vI2Matrix[0][0] = 0;
vI2Matrix[0][1] = 1;
vI2Matrix[1][0] = 10;
vI2Matrix[1][1] = 11;
vI2Matrix[2][0] = 20;
vI2Matrix[2][1] = 21;
cout << "Loop by index:" << endl;
int ii, jj;
for(ii=0; ii < 3; ii )
{
for(jj=0; jj < 2; jj )
{
cout << vI2Matrix[ii][jj] << endl;
}
}
return 0;
}