Tôi muốn đặt ra một câu hỏi dường như đơn giản mà tôi không thể tìm thấy câu trả lời ở đâu cả. Có FAST thuật toán hiện đại cho đầu vào và/hoặc đầu ra tệp có thể được biên dịch với tất cả các trình biên dịch C++ tuân thủ chuẩn và hoạt động cho tất cả các hệ điều hành không yêu cầu thư viện bên ngoài không?Thuật toán nền tảng chéo nhanh để đọc/ghi tệp trong C++
- tôi đã phát hiện ra rằng cách nhanh nhất là sử dụng tập tin bộ nhớ ánh xạ, nhưng điều đó sẽ không làm vì chúng ta muốn cùng một mảnh mã làm việc trên tất cả các nền tảng
- chúng ta không thể sử dụng apis như Win32 API gây ra điều đó sẽ làm cho nền tảng cụ thể là
- tôi không muốn sử dụng c, tôi muốn thuật toán chỉ là mã C++ thuần túy với stl nếu khả thi, chứ không phải một số c xấu xí với tính năng asm hack/trick
- khung hoặc bên ngoài thư viện không thuộc về standart C++ không nên được sử dụng như wxWidgets, Qt, MFC, v.v.
- empasis của toàn bộ câu hỏi này là thuật toán là như NHANH càng tốt, một cái gì đó dọc theo dòng của tốc độ làm việc đó với các tập tin bộ nhớ ánh xạ, thậm chí nhanh hơn sẽ là tuyệt vời nhưng tôi biết đó là không thể
Bạn đã bao giờ thấy điều gì đó điên rồ được nghiên cứu bởi bất kỳ ai khác ngoại trừ tôi? Có phải một thuật toán như vậy thậm chí có thể?
Thanks cho bất kỳ khuyến nghị
Đồng ý. Chỉ tiêu chuẩn I/O tập tin C++ là từ thư viện chuẩn, nghĩa là. tệp tiêu đề '' hoặc ' '. Nếu bạn muốn tập tin nhanh I/O, điều quan trọng nhất là để ** không ** đọc/ghi các tập tin một byte tại một thời điểm, nhưng đọc/viết khối lớn trong một đi. –
stakx
toàn bộ tệp có thể đọc tất cả cùng một lúc với iostream không? điều đó có mang lại lợi thế về hiệu suất, mà tôi không nghĩ vậy? không phải là cstdio một c tiêu đề? – user258883
Đọc toàn bộ tập tin cùng một lúc vẫn còn chậm hơn so với ánh xạ nó vào bộ nhớ. –