C++/STL Algorithms
The STL contains functions for common algorithms within C++.
find
editFinds a value within a range.
Example:
#include <set>
#include <algorithm>
using namespace std;
int main()
{
set<int> TestContainer;
''// Add some elements here''
TestContainer.insert(1);
TestContainer.insert(5);
TestContainer.insert(3);
TestContainer.insert(11);
''// Find the 3 in the container''
set<int>::iterator MyIterator = find(TestContainer.begin(),TestContainer.end(),3);
if(MyIterator != TestContainer.end())
cout<<*MyIterator;
else
cout<< "Error: 3 is not in the container" << endl;
}
copy
editCopies a range of elements.
copy_backward reverses the order of elements.
swap
editSwaps two sets.
#include <iostream>
#include <algorithm>
#include <set>
using namespace std;
int main()
{
set <char> sCreatedSet1 = { '1', '2', '7', '4', '5', '6', '3', '8', '9' };
set <char> sCreatedSet2 = { 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i' };
set<char>::iterator iter1 = sCreatedSet1.begin();
set<char>::iterator iter2 = sCreatedSet2.begin();
cout << "-Set elements before swap-" << endl;
for (auto y : sCreatedSet1)
{
cout << *iter1 << '\t' << *iter2 << endl;
iter1++;
iter2++;
}
swap(sCreatedSet1, sCreatedSet2);
iter1 = sCreatedSet1.begin();
iter2 = sCreatedSet2.begin();
cout << "-Set elements after swap-" << endl;
for (auto y : sCreatedSet1)
{
cout << *iter1 << '\t' << *iter2 << endl;
iter1++;
iter2++;
}
return 0;
}
iter_swap
editSwaps two elements pointed to by iterators.
- Include<studio.h>
- include<condo.h>
Main {
Int: 12 7
Pritnf(Enter the two Swaps number); Sacnf();
{ If For (i=2;i=>0;i++) Printf( Enter two number) } { For (j=1;J>0;J+++) } Printf(max number )
Getch(); }
transform
editApplies a function to a range.
random_shuffle
editRandomly shuffles a range.
sort
editSorts elements in a range.
A stable_sort
retains the original order of equal elements. A stable_sort
does not provide any advantage over a simple sort of, say, a list of integer values (if the list contains multiple values of "2", it doesn't matter which "2" comes first). However, consider the example of sorting a list of Employee
objects by their first name only. Two different employees may share the same first name (which gives them the ordering relative to the rest of the list). If "Bob Smith" was before to "Bob Jones" in the list prior to the sort, then stable_sort
would guarantee Smith was before Jones in the sorted list; sort
does not make such a guarantee. The stable_sort
algorithm is marginally less efficient due to added constraint.
binary_search
editSearches a sorted range for a value.
next_permutation
editTransforms a range to the next permutation.
Reversed by prev_permutation
.
Lessons
editTopics in C++ | ||
Beginners | Data Structures | Advanced |
---|---|---|
Template loop detected: C++/Lessons/Beginners |
Template loop detected: C++/Lessons/Data Structures |
Template loop detected: C++/Lessons/Advanced |
Part of the School of Computer Science |