Khi tôi nhập vào các foll. mã, tôi nhận được đầu ra như 1073741823.Tại sao tôi không thể dự trữ 1.000.000.000 trong véc tơ của mình?
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector <int> v;
cout<<v.max_size();
return 0;
}
Tuy nhiên khi tôi cố gắng để thay đổi kích thước vector để 1000000000, bởi v.resize(1000000000);
chương trình ngừng thực hiện. Làm thế nào tôi có thể cho phép chương trình phân bổ bộ nhớ cần thiết, khi có vẻ như nó có thể?
Tôi đang sử dụng MinGW trong Windows 7. Tôi có RAM 2 GB. Có nên không? Trong trường hợp không thể, tôi không thể khai báo nó như là một mảng các số nguyên và lấy đi? BUt thậm chí điều đó không hoạt động.
Một điều nữa là, giả sử tôi sẽ sử dụng tệp (có thể dễ dàng xử lý nhiều dữ liệu). Làm cách nào để tôi đọc và ghi cùng lúc. Sử dụng fstream file("file.txt', ios::out | ios::in);
không tạo tệp, ngay từ đầu. Nhưng giả sử tập tin tồn tại, tôi không thể sử dụng để đọc và viết đồng thời. những gì tôi có nghĩa là thế này: Hãy để nội dung của file được 111111
Sau đó, nếu tôi chạy: -
#include <fstream>
#include <iostream>
using namespace std;
int main()
{
fstream file("file.txt",ios:in|ios::out);
char x;
while(file>>x)
{
file<<'0';
}
return 0;
}
nên không phải nội dung của tập tin hiện nay được 101010
? Đọc một ký tự và sau đó ghi đè lên ký tự tiếp theo bằng 0? Hoặc trong trường hợp toàn bộ nội dung được đọc cùng một lúc vào một số bộ đệm, nên không có ít nhất một 0 trong tệp? 1111110
? Nhưng nội dung vẫn không bị thay đổi. Vui lòng giải thích. Cảm ơn bạn.
Chào mừng bạn đến với Stack Overflow! Đây là hai câu hỏi riêng biệt. Nói chung, bạn nên hỏi riêng họ. –
Đây là hai câu hỏi rất khác nhau. Bạn có thể chia chúng thành hai bài viết câu hỏi không? – wilhelmtell
Cảm ơn bạn. Tôi xin lỗi, Kể từ khi phân bổ bộ nhớ không hoạt động, tôi đã cố gắng làm điều tương tự, nhưng trong một tập tin, và có một bộ khác nhau của các lỗi đó. Vì vậy, tôi đặt các câu hỏi với nhau. Tôi chắc chắn sẽ hỏi họ một cách riêng biệt vào lần tới. – shreedhar