Đoạn lệnh ios_base::sync_with_stdio(false) chạy như thế nào?

ios_base::sync_with_stdio(false);

Đoạn lệnh này sẽ giúp chương trình này chạy ra sao ạ, em có lên geekforgeek đọc rồi mà người ta bảo để tắt cái luồng đồng bộ giữa C và C++. Em không hiểu rõ lắm. Cảm ơn đã giúp đỡ

Chả có đồng bộ nào giữa C và C++ cả.
C là C, còn C++ là C++.
C++ kế thừa cú pháp của C và mở rộng thêm.

Theo tài liệu từ G4G:

It toggles on or off the synchronization of all the C++ standard streams with their corresponding standard C streams.

Corresponding: tương ứng.

Bạn có từng dùng scanf()printf() trong C++ chưa? Nhắc lại là C++, không phải C. 2 hàm này thao tác trên stdinstdout.

Trong C++ có 2 hình thức để nhập/xuất từ luồng chính là dùng:

  1. std::cinstd::cout.
  2. stdinstdout như C.

Việc thay đổi tham số mà bạn nói đến là bật/tắt đồng bộ gữa 2 cặp này.

Bản chất thật sự của std::cinđọc thông qua stdinstd::coutghi vào stdout.
Khi nhận tham số là false thì việc đồng bộ bị tắt => có sự trễ trong việc đọc/ghi của std::cinstd::cout.
Tăng hiệu suất đối với việc đọc và ghi dữ liệu lớn.

4 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?