- Khai báo sử dụng: #include <algorithm>
- Các hàm trong STL Algorithm khá nhiều nên mình chỉ giới thiệu sơ qua về một số
hàm hay sử dụng trong các bài toán.
- Có một lưu ý nhỏ cho các bạn là khi sử dụng các hàm mà thực hiện trong một đoạn
phần tử liên tiếp nào đó thì các hàm trong c++ thuờng có tác dụng trên nửa đoạn [..).
Ví dụ như: bạn muốn hàm f có tác dụng trong đoạn từ 1->n thì các bạn phải gọi hàm
trong đoạn từ 1 ->n+1.
Min, max:
1.1. min:trả về giá trị bé hơn theo phép so sánh (mặc định là phép toán less):
Ví dụ: min(‘a’,’b’) sẽ return ’a’;
min(3,1) sẽ return 1;
1.2. max thì ngược lại với hàm min:
Ví dụ: max(‘a’,’b’) sẽ return ‘b’
max(3,1) sẽ return 1.
1.3. next_permutation:hoán vị tiếp theo. Hàm này sẽ return 1 nếu có hoán vị
tiếp theo, 0 nếu không có hoán vị tiếp theo.
Ví dụ:
// next_permutation
#include <iostream>
#include <algorithm>
using namespace std;
int main () {
int myints[] = {1,2,3};
cout << "The 3! possible permutations with 3 elements:\n";
do {
cout << myints[0] << " " << myints[1] << " " << myints[2] << endl;
} while ( next_permutation (myints,myints+3) );
return 0;
}
Output:
The 3! possible permutations with 3 elements:
1 2 3
1 3 2
2 1 3
2 3 1
3 1 2
4 2 1
1.4. prev_permution: ngược lại với next_permutation
- Các hàm trong STL Algorithm khá nhiều nên mình chỉ giới thiệu sơ qua về một số
hàm hay sử dụng trong các bài toán.
- Có một lưu ý nhỏ cho các bạn là khi sử dụng các hàm mà thực hiện trong một đoạn
phần tử liên tiếp nào đó thì các hàm trong c++ thuờng có tác dụng trên nửa đoạn [..).
Ví dụ như: bạn muốn hàm f có tác dụng trong đoạn từ 1->n thì các bạn phải gọi hàm
trong đoạn từ 1 ->n+1.
Min, max:
1.1. min:trả về giá trị bé hơn theo phép so sánh (mặc định là phép toán less):
Ví dụ: min(‘a’,’b’) sẽ return ’a’;
min(3,1) sẽ return 1;
1.2. max thì ngược lại với hàm min:
Ví dụ: max(‘a’,’b’) sẽ return ‘b’
max(3,1) sẽ return 1.
1.3. next_permutation:hoán vị tiếp theo. Hàm này sẽ return 1 nếu có hoán vị
tiếp theo, 0 nếu không có hoán vị tiếp theo.
Ví dụ:
// next_permutation
#include <iostream>
#include <algorithm>
using namespace std;
int main () {
int myints[] = {1,2,3};
cout << "The 3! possible permutations with 3 elements:\n";
do {
cout << myints[0] << " " << myints[1] << " " << myints[2] << endl;
} while ( next_permutation (myints,myints+3) );
return 0;
}
Output:
The 3! possible permutations with 3 elements:
1 2 3
1 3 2
2 1 3
2 3 1
3 1 2
4 2 1
1.4. prev_permution: ngược lại với next_permutation