Sorting Algorithms
Efficiently organizing data is essential in software development. In C++, the Standard Template Library (STL) provides robust, highly optimized algorithms for sorting sequences. The two primary sorting algorithms are std::sort and std::stable_sort.
Both algorithms accept a custom comparator, allowing you to define exactly how elements should be ordered. The comparator must define a strict weak ordering and should be consistent and free of side effects.
main.cpp
1234567891011121314151617181920212223242526272829#include <algorithm> #include <iostream> #include <string> #include <vector> struct Person { std::string name; int age; }; int main() { std::vector<Person> people = { {"Alice", 30}, {"Bob", 25}, {"Charlie", 35}, {"Diana", 25} }; // Sort by age, then by name std::sort(people.begin(), people.end(), [](const Person& a, const Person& b) { if (a.age != b.age) return a.age < b.age; return a.name < b.name; }); for (const auto& person : people) std::cout << person.name << " (" << person.age << ")\n"; }
Use std::stable_sort when you need to preserve the relative order of equal elements.
Takk for tilbakemeldingene dine!
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår
What is the difference between std::sort and std::stable_sort?
Can you give an example of using a custom comparator with std::sort?
Why is strict weak ordering important for comparators?
Awesome!
Completion rate improved to 6.67
Sorting Algorithms
Sveip for å vise menyen
Efficiently organizing data is essential in software development. In C++, the Standard Template Library (STL) provides robust, highly optimized algorithms for sorting sequences. The two primary sorting algorithms are std::sort and std::stable_sort.
Both algorithms accept a custom comparator, allowing you to define exactly how elements should be ordered. The comparator must define a strict weak ordering and should be consistent and free of side effects.
main.cpp
1234567891011121314151617181920212223242526272829#include <algorithm> #include <iostream> #include <string> #include <vector> struct Person { std::string name; int age; }; int main() { std::vector<Person> people = { {"Alice", 30}, {"Bob", 25}, {"Charlie", 35}, {"Diana", 25} }; // Sort by age, then by name std::sort(people.begin(), people.end(), [](const Person& a, const Person& b) { if (a.age != b.age) return a.age < b.age; return a.name < b.name; }); for (const auto& person : people) std::cout << person.name << " (" << person.age << ")\n"; }
Use std::stable_sort when you need to preserve the relative order of equal elements.
Takk for tilbakemeldingene dine!