The std::sort() function in the C++ Standard Template Library (STL) is used to sort elements in a specified range. It provides a fast and efficient way to sort elements in ascending or descending order.
Here is a step-by-step tutorial on how to use the std::sort() function in C++:
To use the std::sort() function, include the
#include<algorithm>
Create a sequence of elements that you want to sort. You can use any container that supports random access iterators, such as std::vector, std::array, or even a plain array.
For example, let's create a vector of integers:
#include<vector> int main() { std::vectornumbers = {5, 2, 8, 1, 9}; // Rest of the code return 0; }
Use the std::sort() function to sort the elements in the desired range. The function takes two iterators specifying the range to be sorted: the beginning iterator and the ending iterator.
For example, to sort the entire vector, you can pass the begin() and end() iterators of the vector to the std::sort() function:
std::sort(numbers.begin(), numbers.end());
After this line of code, the elements in the numbers vector will be sorted in ascending order.
>You can now access the sorted elements in the container. For example, you can use a range-based for loop to iterate over the sorted elements:
for (int num : numbers) { // Process each sorted element // ... }
Alternatively, you can access the elements using indices if the container supports random access, such as std::vector or std::array.
By default, std::sort() sorts elements in ascending order. If you want to sort elements in descending order, you can pass a comparison function or lambda expression as a third argument to std::sort().
Here's an example of sorting elements in descending order using a lambda expression:
std::sort(numbers.begin(), numbers.end(), [](int a, int b) { return a > b; // Sort in descending order });
To verify that the elements are correctly sorted, you can print them to the console or perform any other operations you need.
for (int num : numbers) { std::cout << num << " "; }
This will output the sorted elements to the console.
The std::sort() function has an average time complexity of O(n log n), where n is the number of elements to be sorted. It uses an efficient sorting algorithm called IntroSort, which combines quicksort, heapsort, and insertion sort.
If you need to sort a custom class or structure, you can define a comparison function or overload the < operator for that class to specify the desired sorting order.
Be cautious when sorting elements of complex objects. Ensure that the objects have a defined comparison operator or provide a custom comparison function.
That's it! You have now learned how to use the std::sort() function in the C++ STL to sort elements in a range. Experiment with different containers and sorting orders to further explore the capabilities of this powerful function.