C/C++

С++ Не работает двумерный вектор (std::vector)

Помогите,пожалуйста.

Делал по аналогии из этого видео https://youtu.be/_2xQvAgOSD0?t=1302

https://pastebin.com/6ByCz68q - вот если кому так удобнее
Пользуйся отладчиком. Выполняй по шагам, смотри значения переменных.
Ты устанавливаешь размер массива
codes.resize(5);
а потом добавляешь ещё элементы при помощи
codes.push_back(temp);
В результате в массиве 10 элементов, а не 5 как ты ожидал. Первые 5 элементов пустые.
Евгений Панов
Евгений Панов
58 065
Лучший ответ
Евгений Панов В строке
class DP_CODE(unsigned int n, unsigned int t) {
не должно быть слова "class". Для меня удивительно, что такой код скомпилировался.
#include <iostream>
#include <iomanip>
#include <random>
#include <vector>
using namespace std;
class Random {
public:
Random() {
random_device device;
gen.seed(device());
}
int uniform(int first, int last) {
uniform_int_distribution<int> uid(first, last);
return uid(gen);
}
int poisson(double lambda) {
poisson_distribution<int> pd(lambda);
return pd(gen);
}
private:
mt19937 gen;
};
class MatrixInt {
public:
MatrixInt(const size_t n, const size_t m) : n(n), m(m) {
matrix.resize(n);
for (auto i = 0U; i < n; ++i) matrix[i].resize(m);
}
void random_fill(int a, int b) {
if (a > b) swap(a, b);
Random rand;
for (auto& row : matrix) for (auto& x : row) x = rand.uniform(a, b);
}
void show(const streamsize& width)const {
for (const auto& row : matrix) {
for (auto x : row) cout << setw(width) << x;
puts("");
}
}
private:
size_t n;
size_t m;
vector<vector<int>> matrix;
};
int main() {
MatrixInt mi{ 5, 8 };
mi.random_fill(10, 99);
mi.show(4U);
system("pause > nul");
}
Стас Черемичин
Стас Черемичин
79 151
Тогда перепиши создание и использование двумерного массива с помощью си-шной функции malloc и указателя на указатель int **.
Так все студенты пишут, например, в заданиях на матрицы.
Чынгыз Анарбаев там вектор на хранение вектора организуешь и типа строки массива это тот же вектор из колонок
Давай остальные части программы в виде готовых текстовых файлов или предлагаешь физкультурой заняться ненужной по набору текста?
Kg Accauntant And President
Kg Accauntant And President
21 700
Kg Accauntant And President это создание матрицы с помощью векторов и вывод на экран. Добавление и удаление пробуй сам
Насчёт задания не смогу помочь. Но чего нельзя написать using namespace std?
Азат Юламанов ну, вообще нам преподаватель говорил, что лучше не пользоваться using namespace std,так как когда много файлов, то возможна какая-то проблема, связанная с именами. Ну, погугли. Не помню.