Я создаю 2-мерный векторный массив символов char как переменную класса, но у меня возникают проблемы с добавлением вектора в векторный массив .
Я использую gcc со стандартом C ++ 11.
Я пытался использовать vector< vector<char> > row(size, vector<char> );
, но будут отображаться ошибки, говорящие о том, что я не определил size
и vector<char>
. Если я определю его с помощью int size
и vector<char> col
, он подумает, что это новое объявление функции, поскольку я помещаю его как переменную класса.
Поэтому я использую обычный метод vector< vector<char> > row;
и у меня есть функция, чтобы добавить в нее еще один вектор. Поэтому я использую this->row[i].push_back( vector<char> col);
, но затем появляется сообщение об ошибке error: expected primary-expression before ‘col’
. Я также попытался использовать только this->row[i].push_back( vector<char> );
, но ошибка все еще там говорит: error: expected primary-expression before ‘)’
. Это может быть глупо, но я не знаю, как добавить вектор в вектор.
class Vector2d {
private:
int size;
vector< vector<char> > row;
public:
void make2d();
};
void Vector2d::make2d() {
for (int i = 0; i < this->size; i++) {
this->row[i].push_back( vector<char> col ); // compile error here
for (int j = 0; j < this->size; j++) {
this->row[i][j];
}
}
cout << "It works!" << endl;
}
Я ожидаю, что он добавит векторный массив в векторный массив, и что я могу использовать row[i][j]
для остальной части программы. Но это выдает ошибку компилятора: error: expected primary-expression before ‘col’
Я понятия не имею, что делать.