Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Learn Sorting Algorithms | Algorithms
C++ STL Containers and Algorithms

bookSorting 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

main.cpp

copy
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"; }
Note
Note

Use std::stable_sort when you need to preserve the relative order of equal elements.

question mark

Which statement best describes the key difference between std::sort and std::stable_sort in C++ STL?

Select the correct answer

Everything was clear?

How can we improve it?

Thanks for your feedback!

SectionΒ 3. ChapterΒ 4

Ask AI

expand

Ask AI

ChatGPT

Ask anything or try one of the suggested questions to begin our chat

Suggested prompts:

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

bookSorting Algorithms

Swipe to show menu

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

main.cpp

copy
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"; }
Note
Note

Use std::stable_sort when you need to preserve the relative order of equal elements.

question mark

Which statement best describes the key difference between std::sort and std::stable_sort in C++ STL?

Select the correct answer

Everything was clear?

How can we improve it?

Thanks for your feedback!

SectionΒ 3. ChapterΒ 4
some-alt