Coding/Tip !!
c++ 정적 배열사용 array
IMyoungho
2018. 9. 19. 14:18
보통 우리는 배열을 사용 할 때
1 2 3 4 5 6 | #include <iostream> int main(){ int arr[5] = { 1, 2, 3, 4, 5}; } |
처럼 선언한다.
하지만 좀 더 쉽고 다양하게 사용할 수 있도록 선언하는 방법이 있다.
1 2 3 4 5 6 7 | #include <iostream> #include <array> int main(){ std::array<int, 5> hello_Arr = { 1, 2, 3, 4, 5}; cout << hello_Arr.size() << endl; // 배열크기 출력 } | c |
-> 하지만 이런식의 표현의 단점은 바로 < > 내부에 배열의 크기를 나타내는 숫자가 있어야한다는 점이다.
-> 보통 배열은 int arr[] ={ 1,2,3,4,5 } 가 가능하지만 위의 표현은 그런것이 불가능하다는 점이다.
이런 식으로 선언할 경우 다양한 기능을 이용할 수 있는데 대표적으로 배열에 대한 값을 sort할 수 있다.
1 2 3 4 5 6 7 8 9 10 11 | #include <iostream> #include <array> #include <algorithm> int main(){ std::array<int, 5> hello_Arr = { 100, 21, 33, 4, 25}; std::sort(hello_Arr.begin(), hello_Arr.end()); // 정순으로 정렬 std::sort(hello_Arr.rbegin(), hello_Arr.rend()); // 역순으로 정렬 rbegin에서 r은 revers를 의미한다. } |
이런식으로 진행하면 배열이 정렬되어진다.
hello_Arr.at(숫자 크기) 을 사용하게 되면 해당 숫자크기의 범위를 넘었는지 넘지 않았는지 검사를 진행하고 넘게되면 예외처리를 진행하게 된다.
-> 속도는 보통의 hello_Arr[10] 같은 것에 비해 느리다.
-> hello_Arr[10]의 경우 현재 배열의 크기가 5인데 이러한 범위를 넘었는지를 검사하지 않고 무조건 접근함
반응형