Cách nhập/xuất vector 2 chiều bằng cơ chế .at()
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 << "
Nhap vao so dong: ";
cin >> dong;
a.resize(dong);
for(int i = 0; i < dong; i++)
{
int cot;
cout << "
Nhap vao so cot cua dong " << i << ": ";
cin >> cot;
a[i].resize(cot);
for(int j = 0; j < cot; j++)
{
cout << "
Nhap 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
arr.at(i).at(j)
Cảm ơn anh nhé, em đã làm được
Nhân tiện, bạn nào cần source code thì đây luôn: