Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++ STL의 배열 알고리즘

<시간/>

C++11부터 STL에 다른 기능이 추가되었습니다. 이러한 기능은 알고리즘 헤더 파일에 있습니다. 여기서 우리는 이것의 몇 가지 기능을 볼 것입니다.

  • all_of() 함수는 컨테이너의 모든 요소에 대해 참인 하나의 조건을 확인하는 데 사용됩니다. 아이디어를 얻기 위해 코드를 살펴보겠습니다.

예시

#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";
   }
}

출력

All are even


  • any_of() 함수는 하나의 조건을 확인하는 데 사용되며, 이는 컨테이너의 적어도 하나의 요소에 대해 참입니다. 아이디어를 얻기 위해 코드를 살펴보겠습니다.

예시

#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";
   }
}

출력

At least one element is odd


  • none_of() 함수는 컨테이너의 요소가 주어진 조건을 만족하지 않는지 여부를 확인하는 데 사용됩니다. 아이디어를 얻기 위해 코드를 살펴보겠습니다.

예시

#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";
   }
}

출력

All elements are positive


  • copy_n() 함수는 한 배열의 요소를 다른 배열로 복사하는 데 사용됩니다. 더 나은 아이디어를 얻기 위해 코드를 살펴보겠습니다.

예시

#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] << " ";
   }
}

출력

2 4 6 8 10 5 62


  • itoa() 함수는 배열에 연속 값을 할당하는 데 사용됩니다. 이 기능은 숫자 헤더 파일 아래에 있습니다. 세 가지 인수가 필요합니다. 배열 이름, 크기 및 시작 값입니다.

예시

#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] << " ";
   }
}

출력

10 11 12 13 14 15 16 17 18 19