Algorithm Parameters
STL algorithms such as std::sort are designed to accept callable parameters, which means you can pass lambdas or function objects to customize their behavior. This feature allows you to define exactly how elements should be compared, transformed, or filtered during algorithm execution.
main.cpp
1234567891011121314151617181920#include <algorithm> #include <iostream> #include <vector> #include <string> int main() { std::vector<std::string> names = {"Alice", "Bob", "Charlie", "David"}; // Sort names by length using a lambda as a custom comparator std::sort(names.begin(), names.end(), [](const std::string& a, const std::string& b) { return a.size() < b.size(); } ); for (const auto& name : names) std::cout << name << " "; std::cout << std::endl; }
By providing a lambda, you can write concise, inline logic that is tailored to your specific task, without the need to define separate functions or classes. This leads to more expressive, maintainable, and flexible code, as you can adjust algorithm behavior directly at the call site.
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
Can you give an example of using a lambda with std::sort?
What are some other STL algorithms that accept lambdas?
Why would I use a lambda instead of a regular function?
Fantastisk!
Completion rate forbedret til 8.33
Algorithm Parameters
Stryg for at vise menuen
STL algorithms such as std::sort are designed to accept callable parameters, which means you can pass lambdas or function objects to customize their behavior. This feature allows you to define exactly how elements should be compared, transformed, or filtered during algorithm execution.
main.cpp
1234567891011121314151617181920#include <algorithm> #include <iostream> #include <vector> #include <string> int main() { std::vector<std::string> names = {"Alice", "Bob", "Charlie", "David"}; // Sort names by length using a lambda as a custom comparator std::sort(names.begin(), names.end(), [](const std::string& a, const std::string& b) { return a.size() < b.size(); } ); for (const auto& name : names) std::cout << name << " "; std::cout << std::endl; }
By providing a lambda, you can write concise, inline logic that is tailored to your specific task, without the need to define separate functions or classes. This leads to more expressive, maintainable, and flexible code, as you can adjust algorithm behavior directly at the call site.
Tak for dine kommentarer!