在我为我的二维向量提供第一个值后控制台关闭

Console closing after i give a first value to my bidimensional vector

本文关键字:第一个 控制台 向量 二维 我的      更新时间:2023-10-16

我创建了二维向量函数,它应该填充一个向量返回到我的主函数,但是在我尝试插入第一个值后,控制台停止获取新值并结束。

#include <iostream>
#include <vector>
std::vector <std::vector <int>> fill(int lin, int col) {
int val;
std::vector <std::vector<int>> mat;
for (int i = 0; i < lin; i++) {
for (int j = 0; j < col; j++) {
std::cin >> val;
mat[i][j] = val;
}
}
return mat;
}
void size(int &lin, int &col) {
std::cout << "Quantidade de linhas: ";
std::cin >> lin;
std::cout << "Quantidade de colunas: ";
std::cin >> col;
}
int main() {
int opc, lin, col;
std::vector <std::vector<int>> matA;
std::vector <std::vector<int>> matB;
std::cout << "1. Soman2. Subtracaon3. Multiplicacaon4. Divisaon >";
std::cin >> opc;

switch (opc) {
case 1:
//soma
size(lin, col);
matA = fill(lin, col);
matB = fill(lin, col);      
}
}

您需要调整向量的大小(实际上您需要调整外部和每个内部向量的大小(。请参阅第 3 行和第 6 行的变化:

std::vector <std::vector <int>> fill(int lin, int col) {
int val;
std::vector <std::vector<int>> mat(lin);
for (int i = 0; i < lin; i++) {
mat[i].resize(col);
for (int j = 0; j < col; j++) {
std::cin >> val;
mat[i][j] = val;
}
}
return mat;
}
相关文章: