Từ C++11, nhiều hàm được thêm vào STL. Các hàm này nằm trong header
Hàm all_of() kiểm tra điều kiện đúng cho TẤT CẢ phần tử của container.
Ví dụ
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
int arr[] = {2, 4, 6, 8, 10};
int n = sizeof(arr)/sizeof(arr[0]);
if (all_of(arr, arr + n, [](int x){ return x%2 == 0; }))
cout << "Tất cả đều chẵn";
else
cout << "Không phải tất cả chẵn";
} Kết quả
Tất cả đều chẵn
Hàm any_of() kiểm tra điều kiện đúng cho ÍT NHẤT MỘT phần tử.
Ví dụ
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
int arr[] = {2, 4, 6, 8, 10, 5, 62};
int n = sizeof(arr)/sizeof(arr[0]);
if (any_of(arr, arr + n, [](int x){ return x%2 == 1; }))
cout << "Có ít nhất một phần tử lẻ";
else
cout << "Không tìm thấy phần tử lẻ";
} Kết quả
Có ít nhất một phần tử lẻ
Hàm none_of() kiểm tra KHÔNG CÓ phần tử nào thỏa mãn điều kiện.
Ví dụ
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
int arr[] = {2, 4, 6, 8, 10, 5, 62};
int n = sizeof(arr)/sizeof(arr[0]);
if (none_of(arr, arr + n, [](int x){ return x < 0; }))
cout << "Tất cả phần tử đều dương";
else
cout << "Có phần tử âm";
} Kết quả
Tất cả phần tử đều dương
Hàm copy_n() sao chép n phần tử từ mảng này sang mảng khác.
Ví dụ
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
int arr[] = {2, 4, 6, 8, 10, 5, 62};
int n = sizeof(arr)/sizeof(arr[0]);
int arr2[n];
copy_n(arr, n, arr2);
for (int i = 0; i < n; i++)
cout << arr2[i] << " ";
} Kết quả
2 4 6 8 10 5 62
Hàm iota() gán giá trị liên tục vào mảng. Nằm trong header
. Nhận 3 tham số: tên mảng, kích thước, giá trị bắt đầu.
Ví dụ
#include <iostream>
#include <numeric>
using namespace std;
int main() {
int n = 10;
int arr[n];
iota(arr, arr+n, 10);
for (int i = 0; i < n; i++)
cout << arr[i] << " ";
} Kết quả
10 11 12 13 14 15 16 17 18 19