C++에서는 std::array를 제공합니다.
std::array는 메모리를 자동으로 할당하고 해제합니다. std::array는 원소의 타입과 배열 크기를 매개변수로 사용하는 클래스 템플릿입니다.
#include <iostream>
#include <array>
using namespace std;
int main()
{
array<int, 10> arr1;
arr1[0] = 1;
cout << "arr1 배열의 첫 번째 원소: " << arr1[0] << std::endl;
array<int, 4> arr2 = { 1,2,3,4 };
cout << "arr2의 모든 원소 : ";
for (int i = 0; i < arr2.size(); i++)
{
cout << arr2[i] << " ";
}
cout << endl;
return 0;
}
범위기반 for문을 이용하여 출력하는 방법
#include <iostream>
#include <array>
using namespace std;
int main()
{
array<int, 5> arr = { 1,2,3,4,5 };
for (auto element : arr)
{
cout << element << ' ';
}
return 0;
}
배열의 크기를 반복문에게 알리지 않고도 실행이 가능한 이유는 std::array는 begin()과 end()라는 이름의 멤버 함수를 제공하며, 가장 첫 번째 원소와 가장 마지막 원소의 위치(정확하게는 마지막 원소 다음 위치)를 반환합니다.
범위 기반 for 반복문은 begin()위치부터 시작하여 증가 연산자를 통해 차례대로 워ㅏㄴ소를 이동하다가 end() 위치에 도달하면 종료합니다.
iterator를 사용하여 array를 출력하는 방법
#include <iostream>
#include <array>
using namespace std;
int main()
{
array<int, 5> arr = { 1,2,3,4,5 };
for (auto it = arr.begin(); it != arr.end(); it++)
{
auto element = (*it);
cout << element << ' ';
}
return 0;
}
iterator를 array(begin()의 반환 값) 의 시작원소로 초기화한후에 array의 마지막원소 + 1(end()의 반환 값) 의 위치가 아닐 때까지 출력합니다.
'ALGORITHM > 코딩테스트를 위한 자료구조와 알고리즘 with c++ 정리' 카테고리의 다른 글
std::list의 삽입 또는 삭제 함수 사용하기 (0) | 2021.12.20 |
---|---|
기본적인 사용자 정의 컨테이너 만들기 (0) | 2021.12.20 |
std::vector 와 std::forward list 비교 (0) | 2021.12.20 |
std::vector-가변 크기 배열 (0) | 2021.12.20 |
단순연결 리스트(singly linked list) (0) | 2021.12.20 |