C++에서 배열을 반복하는 방법

Jinku Hu 2023년10월12일
  1. for 루프를 사용하여 배열 반복
  2. 범위 기반 루프를 사용하여 배열 반복
  3. std::for_each 알고리즘을 사용하여 배열 반복
C++에서 배열을 반복하는 방법

이 기사에서는 C++에서 다른 방법을 사용하여 배열을 반복하는 방법을 설명합니다.

for 루프를 사용하여 배열 반복

배열 요소를 반복하는 명백한 방법은 for루프입니다. 이는 각각 쉼표로 구분 된 세 부분으로 된 문으로 구성됩니다. 먼저 설계 상 한 번만 실행되는 카운터 변수 i를 초기화해야합니다. 다음 부분은 각 반복에서 평가 될 조건을 선언하고 false가 반환되면 루프 실행이 중지됩니다. 이 경우 카운터와 배열의 크기를 비교합니다. 마지막 부분은 카운터를 증가시키고 각 루프 사이클에서도 실행됩니다.

#include <array>
#include <iostream>

using std::array;
using std::cin;
using std::cout;
using std::endl;
using std::string;

int main() {
  array<string, 10> str_arr = {"Albatross", "Auklet", "Bluebird", "Blackbird",
                               "Cowbird",   "Dove",   "Duck",     "Godwit",
                               "Gull",      "Hawk"};

  for (size_t i = 0; i < str_arr.size(); ++i) {
    cout << str_arr[i] << " - ";
  }
  cout << endl;

  return EXIT_SUCCESS;
}

출력:

Albatross - Auklet - Bluebird - Blackbird - Cowbird - Dove - Duck - Godwit - Gull - Hawk -

범위 기반 루프를 사용하여 배열 반복

범위 기반 루프는 기존의 for루프를 읽을 수있는 버전입니다. 이 방법은 복잡한 컨테이너에 대한 쉬운 반복을 제공하고 각 요소에 액세스 할 수있는 유연성을 유지하므로 강력한 대안입니다. 다음 코드 샘플은 이전 예제를 정확하게 다시 구현 한 것입니다.

#include <array>
#include <iostream>

using std::array;
using std::cin;
using std::cout;
using std::endl;
using std::string;

int main() {
  array<string, 10> str_arr = {"Albatross", "Auklet", "Bluebird", "Blackbird",
                               "Cowbird",   "Dove",   "Duck",     "Godwit",
                               "Gull",      "Hawk"};

  for (auto &item : str_arr) {
    cout << item << " - ";
  }
  cout << endl;

  return EXIT_SUCCESS;
}

std::for_each 알고리즘을 사용하여 배열 반복

for_each는 범위 요소에서 작동하고 사용자 정의 함수를 적용하는 강력한 STL 알고리즘입니다. 범위 시작 및 마지막 반복기 객체를 처음 두 매개 변수로 사용하고 함수 객체를 세 번째 매개 변수로 사용합니다. 이 경우 계산 된 결과를 콘솔에 직접 출력하는 lambda표현식으로 함수 객체를 선언합니다. 마지막으로custom_func 변수를for_each 메소드에 대한 인수로 전달하여 배열 요소에서 작동 할 수 있습니다.

#include <array>
#include <iostream>

using std::array;
using std::cin;
using std::cout;
using std::endl;
using std::for_each;
using std::string;

int main() {
  array<int, 10> int_arr = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
  auto custom_func = [](auto &i) { cout << i * (i + i) << "; "; };
  ;

  for_each(int_arr.begin(), int_arr.end(), custom_func);
  cout << endl;

  return EXIT_SUCCESS;
}

출력:

2; 8; 18; 32; 50; 72; 98; 128; 162; 200;
작가: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn Facebook

관련 문장 - C++ Array