Computer >> Máy Tính >  >> Lập trình >> C ++

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

Vì C ++ 11 nên có các hàm khác nhau được thêm vào STL. Các hàm này có trong tệp tiêu đề thuật toán. Ở đây chúng ta sẽ thấy một số chức năng của điều này.

  • Hàm all_of () được sử dụng để kiểm tra một điều kiện, điều đó đúng với tất cả các phần tử của một vùng chứa. Hãy cho chúng tôi xem mã để có được ý tưởng

Ví dụ

#include <iostream>
#include <algorithm>
using namespace std;
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 << "All are even";
   } else {
      cout << "All are not even";
   }
}

Đầu ra

All are even


  • Hàm any_of () được sử dụng để kiểm tra một điều kiện, điều kiện đó đúng với ít nhất một phần tử của vùng chứa. Hãy cho chúng tôi xem mã để biết ý tưởng.

Ví dụ

#include <iostream>
#include <algorithm>
using namespace std;
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 << "At least one element is odd";
   } else {
      cout << "No odd elements are found";
   }
}

Đầu ra

At least one element is odd


  • Hàm none_of () được sử dụng để kiểm tra xem không có phần tử nào của vùng chứa thỏa mãn điều kiện đã cho. Hãy cho chúng tôi xem mã để biết ý tưởng.

Ví dụ

#include <iostream>
#include <algorithm>
using namespace std;
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 == 1;})) {
      cout << "All elements are positive";
   } else {
      cout << "Some elements are negative";
   }
}

Đầu ra

All elements are positive


  • Hàm copy_n () được sử dụng để sao chép các phần tử của một mảng này vào một mảng khác. Hãy cho chúng tôi xem mã để hiểu rõ hơn.

Ví dụ

#include <iostream>
#include <algorithm>
using namespace std;
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] << " ";
   }
}

Đầu ra

2 4 6 8 10 5 62


  • Hàm itoa () được sử dụng để gán các giá trị liên tục vào mảng. Hàm này hiện diện dưới tệp tiêu đề số. Nó cần ba đối số. Tên mảng, kích thước và giá trị bắt đầu.

Ví dụ

#include <iostream>
#include <numeric>
using namespace std;
main() {
   int n = 10;
   int arr[n];
   iota(arr, arr+n, 10);
   for(int i = 0; i < n; i++) {
      cout << arr[i] << " ";
   }
}

Đầu ra

10 11 12 13 14 15 16 17 18 19