일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 멀티쓰레드
- DirectX 12
- directx
- 쓰레드
- 파일시스템 구현
- 병행성
- DirectX12
- Direct12
- 컨디션 변수
- 알고리즘
- 락
- 운영체제
- 렌더링 파이프라인
- 자료구조
- 그리디알고리즘
- 스케줄링
- 타입 객체
- 백준
- 병행성 관련 오류
- 그리디 알고리즘
- 디자인패턴
- 영속성
- 동적계획법
- 다이나믹 프로그래밍
- OS
- 다이나믹프로그래밍
- I/O장치
- codility
- 멀티프로세서
- 프로그래머스
Archives
- Today
- Total
기록공간
std::array 본문
반응형
배열 타입은 C언어에서 유래한 것으로 C++에서도 계속 사용하고 있다. C++에서는 std::array라는 새로운 형태의 컨테이너가 있다. std::array는 <array> 헤더 파일에 정의되어 있다. std::array는 C언어 배열을 대체하는 안전한(범위를 벗어난 메모리 작업의 위험이 없는) 배열 타입이다. std::array가 도입되기 전에는 std::vector를 사용해야 했다. std::array는 std::vector와는 다르게 크기가 고정되어 있어 새로 항목을 추가하거나 삭제할 수는 없지만 오버헤드가 적은 장점이 있다.
std::array는 기존 C언어 배열에 대한 아주 가벼운 레퍼 클래스로 기존 배열에 비해 몇 가지 장점이 있다. 우선 배열의 크기를 항상 정확히 알 수 있고, 포인터가 자동으로 잘못 타입 캐스팅되는 것도 피할 수 있드며 C++ STL의 iterator를 활용하여 항목을 순회하거나 STL 알고리즘을 이용할 수도 있다.
다음은 array 컨테이너의 사용 예이다.
#include <iostream>
#include <array>
using namespace std;
int main()
{
array<int, 3> arr = {9, 8, 7};
cout << "Array size = " << arr.size() << endl;
cout << "Element 2 = " << arr[1] << endl;
return 0;
}
배열 크기가 동적으로 바뀌어야 한다면 vector를 사용해야 한다. vector는 새로운 항목을 추가할 때마다 크기가 자동으로 늘어난다.
반응형
'C++' 카테고리의 다른 글
decltype 키워드 (0) | 2020.04.03 |
---|---|
자동 함수 리턴 타입 (C++14) (0) | 2020.04.03 |
새로운 함수 정의 문법(C++11) (0) | 2020.04.03 |
엄격한 열거 타입 (0) | 2020.04.03 |
템플릿(Template) (0) | 2019.07.02 |
Comments