30/09/2018, 16:18
Sử dụng vector bị lỗi: vector subscript out of range?
Mycode
/*mo file input.txt tim max trong day so nguyen.txt*/
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
int main(){
//mo file de doc
ifstream FileIn("INPUT.TXT");
if (!FileIn){
cout << "Khong tim thay tap tin INPUT.TXT" << endl;
system("pause");
return 0;
}
vector<int> arr;
int SoLuong;
FileIn >> SoLuong;
for (int i = 1; i <= SoLuong; i++){
int x;
FileIn >> x;
arr.push_back(x);
}
FileIn.close();
ofstream FileOut("OUTPUT.TXT");
int max = arr[0];
for (int i = 1; i <= arr.size(); i++){
if (arr[i] > max){
max = arr[i];
}
}
FileOut << max;
FileOut.close();
system("pause");
return 0;
}
Bài liên quan
Đọc lỗi này thì thấy là cách @tuantien8979 sử dụng vector bị sai. Sai ở chỗ là đã trỏ nhầm ra ngoài phạm vi của vector. Khi nào mình thấy chữ
out of range
là tự hiểu thế nhé.Đọc vào code thì thấy thế này:
Sai ở chỗ:
Sửa lại
Tuy nhiên cách dùng này không nên áp dụng đối với vector nhé. Hãy dùng iterator để code. @tuantien8979 xem các video về vector để hiểu cách dùng
Để em xem rùi làm lại bài này
Nếu sửa theo cách của anh thấy đúng thì nhớ chọn câu trả lời của anh là đúng nhé @tuantien8979