Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Các thuật toán mảng trong C++ STL


Từ C++11, nhiều hàm được thêm vào STL. Các hàm này nằm trong header . Hãy xem một số hàm:

  • 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