C++에서 구조체 배열 만들기

Jinku Hu 2023년10월12일
  1. C 스타일 배열 선언을 사용하여 구조체의 고정 길이 배열 만들기
  2. std::vector 및 이니셜 라이저 목록 생성자를 사용하여 구조체의 가변 길이 배열 만들기
C++에서 구조체 배열 만들기

이 기사에서는 C++에서 구조체 배열을 만드는 방법에 대한 여러 방법을 보여줍니다.

C 스타일 배열 선언을 사용하여 구조체의 고정 길이 배열 만들기

구조체의 고정 길이 배열은[]C 스타일 배열 표기법을 사용하여 선언 할 수 있습니다. 이 경우 여러 데이터 멤버와 2 개의 요소 배열을 초기화 한Company라는 임의의struct를 정의했습니다. 이 메서드의 유일한 단점은 선언 된 배열이 내장 함수가없는 원시 객체라는 것입니다. 장점은 C++ 라이브러리 컨테이너보다 더 효율적이고 빠른 데이터 구조입니다.

#include <iostream>
#include <string>
#include <vector>

using std::cout;
using std::endl;
using std::string;
using std::vector;

struct Company {
  string name;
  string ceo;
  float income;
  int employess;
};

int main() {
  Company comp_arr[2] = {{"Intel", "Bob Swan", 91213.11, 110823},
                         {"Apple", "Tim Cook", 131231.11, 137031}};

  for (const auto &arr : comp_arr) {
    cout << "Name: " << arr.name << endl
         << "CEO: " << arr.ceo << endl
         << "Income: " << arr.income << endl
         << "Employees: " << arr.employess << endl
         << endl;
  }

  return EXIT_SUCCESS;
}

출력:

Name: Intel
CEO: Bob Swan
Income: 91213.1
Employees: 110823


Name: Apple
CEO: Tim Cook
Income: 131231
Employees: 137031

std::vector 및 이니셜 라이저 목록 생성자를 사용하여 구조체의 가변 길이 배열 만들기

또는std::vector 컨테이너를 사용하여 데이터 조작을위한 여러 내장 메서드를 제공하는 변수 배열을 선언 할 수 있습니다. std::vector 객체는 이전 예제와 동일한 표기법으로 초기화 할 수 있습니다. 기존의 push_back메소드를 사용하여 새 요소를 배열에 추가하고 마지막 요소는 pop_back으로 제거 할 수 있습니다. 이 예에서 요소는 콘솔에 하나씩 인쇄됩니다.

이니셜 라이저 목록 멤버는 올바른 할당 및 형식 지정을 위해 외부 중괄호를 포함해야합니다.

#include <iostream>
#include <string>
#include <vector>

using std::cout;
using std::endl;
using std::string;
using std::vector;

struct Company {
  string name;
  string ceo;
  float income;
  int employess;
};

int main() {
  vector<Company> comp_arr = {{"Intel", "Bob Swan", 91213.11, 110823},
                              {"Apple", "Tim Cook", 131231.11, 137031}};

  for (const auto &arr : comp_arr) {
    cout << "Name: " << arr.name << endl
         << "CEO: " << arr.ceo << endl
         << "Income: " << arr.income << endl
         << "Employees: " << arr.employess << endl
         << endl;
  }

  return EXIT_SUCCESS;
}

출력:

Name: Intel
CEO: Bob Swan
Income: 91213.1
Employees: 110823


Name: Apple
CEO: Tim Cook
Income: 131231
Employees: 137031
작가: 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++ Struct

관련 문장 - C++ Array