Hi mọi người,
Tình hình mình đang làm bài tập nhập/xuất vector 2 chiều.
Thì cái đề bài này chỉ yêu cầu thế, nên ta có thể hoàn toàn làm như sau:
#include <iostream>
#include <vector>
#include <iomanip>
using namespace std;
void NhapMang(vector<vector<int>> &a)
{
int dong;
cout << "\nNhap vao so dong: ";
cin >> dong;
a.resize(dong);
for(int i = 0; i < dong; i++)
{
int cot;
cout << "\nNhap vao so cot cua dong " << i << ": ";
cin >> cot;
a[i].resize(cot);
for(int j = 0; j < cot; j++)
{
cout << "\nNhap vao a[" << i << "][" << j << "] = ";
cin >> a[i][j];
}
}
}
void XuatMang(vector<vector<int>> a)
{
int dong = a.size();
for(int i = 0; i < dong; i++)
{
int cot = a[i].size();
for(int j = 0; j < cot; j++)
{
cout << setw(6) << a[i][j];
}
cout << endl;
}
}
int main()
{
vector<vector<int>> a; // Khai báo vector 2 chiều.
NhapMang(a);
XuatMang(a);
system("pause");
return 0;
}
Nhưng do là hôm trước, em coi videos của anh Đạt về container vector trên Youtube thì ảnh có nói là nếu dùng vector thì đừng code theo kiểu arr[...]
hay arr[...][....]
mà nên code theo kiểu arr.at(...)
Cá nhân em thấy điều này cũng có lý, nhưng nhập/xuất vector 2 chiều bằng cơ chế .at()
thì em không biết làm sao.
Em thử để arr.at(arr.at(j))
thì cũng không được.
Ai biết làm theo cách này thì cho em xin source code hoặc hướng dẫn trực tiếp cho em bằng cách reply bên dưới nhé!
Em cảm ơn