Một trong những điều khiến bạn tránh viết các thuật toán cơ bản trong C ++ 11 là sự sẵn có của lambdas kết hợp với các thuật toán được cung cấp bởi thư viện chuẩn.
Bây giờ tôi đang sử dụng những thứ đó và thật không thể tin được bạn thường chỉ nói những gì bạn muốn làm bằng cách sử dụng Count_if (), for_each () hoặc các thuật toán khác thay vì phải viết lại các vòng lặp chết tiệt.
Khi bạn đang sử dụng trình biên dịch C ++ 11 với thư viện chuẩn C ++ 11 hoàn chỉnh, bạn không còn lý do nào để không sử dụng các thuật toán tiêu chuẩn để xây dựng thư viện của mình . Lambda chỉ cần giết nó.
Tại sao?
Trong thực tế (sau khi tự mình sử dụng cách viết thuật toán này), việc đọc thứ gì đó được xây dựng bằng những từ đơn giản có nghĩa là những gì được thực hiện dễ dàng hơn nhiều so với một số vòng lặp mà bạn phải giải mã để biết ý nghĩa. Điều đó nói rằng, làm cho các đối số lambda tự động suy ra sẽ giúp rất nhiều làm cho cú pháp dễ dàng so sánh với một vòng lặp thô.
Về cơ bản, việc đọc các thuật toán được thực hiện với các thuật toán tiêu chuẩn dễ dàng hơn nhiều vì các từ ẩn các chi tiết thực hiện của các vòng lặp.
Tôi đoán chỉ có các thuật toán cấp cao hơn phải được suy nghĩ về việc chúng ta có các thuật toán cấp thấp hơn để xây dựng.