С++ Выделение места под вектор
Нужно в конструторе инициализировать вектор элементов. При такой реализации выводит segfault. Как мне выделить место под вектор в конструторе класса?
private:
int c;
std::vector<int> b;
public:
a() : c(0) { b[3] = 5; }
int getC() { return c; }
void setC(int d) { c = d; }
};
int main() {
a var;
var.setC(1);
printf("111 - %d\n", var.getC());
return 0;
}
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
Ну сначала дайте вектору нужное количество элементов...
Например:
a() : c(0), b(4) { b[3] = 5; }
Здесь вектор инициализируется четырьмя нулевыми элементами, так что b[3] = 5; приобретает смысл...
Для двумерного вектора
vector<vector<int>> b;
инициализация выглядит так:
b(4,vector<int>(4));
т.е. 4 элемента, каждый из которых - вектор из 4 элементов...