이이프
IeF 제멋대로 세상
이이프
전체 방문자
오늘
어제

공지사항

  • ✔ Info
  • 전체 글보기 (56)
    • 💻프로그래밍 내용 정리 (55)
      • C (0)
      • C++17 (55)
    • 💻게임메이커 (0)
    • 💻언리얼엔진 (0)
    • 💻유니티 (0)
    • 🎈[팀&자작]게임소개 (0)
    • 📃게임제작기술 (0)
    • 🎨그림놀이 (0)
    • 📒대학생활 (0)
    • 😃잡담 (1)
    • 🕹게임성과 (0)
    • 💷자격증 (0)

블로그 메뉴

  • 방명록

최근 글

최근 댓글

티스토리

hELLO · Designed By 정상우.
이이프

IeF 제멋대로 세상

💻프로그래밍 내용 정리/C++17

[C++ 1.1.11] std::array

2022. 8. 15. 21:26
728x90

std::array

앞 절에서 설명한 배열은 C 언어에서 사용하던 것이다.

C++에서 그대로 사용해도 되지만 C++에서는 std::array라는 고정 크기 컨테이너를 제공한다.

이 타입은 <array> 헤더 파일에 정의돼 있다.

 

std::array는 C 스타일 배열에 비해 여러 장점이 있다.

크기를 정확히 알 수 있고, 자동으로 포인터를 캐스팅(동적 형변환)하지 않아서 특정한 종류의 버그를 방지할 수 있고,

반복자(이터레이터)로 배열에 원소에 대한 반복문을 쉽게 작성할 수 있다.

 

다음 예제는 array 컨테이너를 사용하는 방법이다.

#include <iostream>
#include <array>
using namespace std;

int main()
{
    array<int, 3> arr = { 9, 8, 7 };
    cout << "Array size = " << arr.size() << endl;
    cout << "2nd element = " << arr[1] << endl;
    return 0;
}

array<int, 3>과 같이 꺾쇠괄호에 두 개의 매개변수를 지정해야 한다.

첫 번째 매개변수는 배열에 담길 우너소의 타입을, 두 번째 매개변수는 배열의 크기를 나타낸다.

 

C 스타일 배열과 std::array는 둘 다 크기가 고정된다.

따라서 반드시 컴파일 시간에 결정돼야 하며, 실행 시간에 늘어나거나 줄어들 수는 없다.

'💻프로그래밍 내용 정리 > C++17' 카테고리의 다른 글

[C++ 1.1.13] 구조적 바인딩(auto)  (0) 2022.08.15
[C++ 1.1.12] std::vector, push_back()  (0) 2022.08.15
[C++ 1.1.10] C 스타일 배열, 영 초기화, 이니셜라이저 리스트, std::size(), sizeof  (0) 2022.08.15
[C++ 1.1.9] 함수, 함수 선언, 함수 정의, 함수 리턴 타입 추론(auto), 현재 함수 이름(__func__)  (0) 2022.08.15
[C++ 1.1.8] 논리 연산자(<, <=, >, >=, ==, !=, !, &&, ||), 단락 논리  (0) 2022.08.15
    '💻프로그래밍 내용 정리/C++17' 카테고리의 다른 글
    • [C++ 1.1.13] 구조적 바인딩(auto)
    • [C++ 1.1.12] std::vector, push_back()
    • [C++ 1.1.10] C 스타일 배열, 영 초기화, 이니셜라이저 리스트, std::size(), sizeof
    • [C++ 1.1.9] 함수, 함수 선언, 함수 정의, 함수 리턴 타입 추론(auto), 현재 함수 이름(__func__)
    이이프
    이이프
    게임 프로그래머 지망생 / Since 2022.08.14

    티스토리툴바