C++의 배열 클래스
C++11의 배열 클래스 도입으로 C 스타일 배열에 대한 더 나은 대안이 제공되었습니다. C 스타일 배열에 비해 배열 클래스의 장점은 다음과 같습니다.
- 배열 클래스는 자체 크기를 알고 있지만 C 스타일 배열에는 이 속성이 없습니다. 따라서 함수에 전달할 때 배열의 크기를 별도의 매개변수로 전달할 필요가 없습니다.
- C 스타일 배열을 사용하면 다음과 같은 위험이 더 커집니다. 배열이 포인터로 붕괴되는 중 . 배열 클래스는 포인터로 붕괴되지 않습니다
- 배열 클래스는 일반적으로 C 스타일 배열보다 더 효율적이고 가볍고 안정적입니다.
어레이 작업 :-
1. 에서() :- 이 함수는 배열 요소에 액세스하는 데 사용됩니다.
2. get() :- 이 함수는 배열 요소에 액세스하는 데에도 사용됩니다. 이 함수는 배열 클래스의 멤버가 아니라 클래스 튜플의 오버로드된 함수입니다.
3. 연산자[] :- 이는 C 스타일 배열과 유사합니다. 이 메서드는 배열 요소에 액세스하는 데에도 사용됩니다.
// C++ code to demonstrate working of array // at() and get() #include #include // for array at() #include // for get() using namespace std ; int main () { // Initializing the array elements array < int 6 > ar = { 1 2 3 4 5 6 }; // Printing array elements using at() cout < < 'The array elements are (using at()) : ' ; for ( int i = 0 ; i < 6 ; i ++ ) cout < < ar . at ( i ) < < ' ' ; cout < < endl ; // Printing array elements using get() cout < < 'The array elements are (using get()) : ' ; cout < < get < 0 > ( ar ) < < ' ' < < get < 1 > ( ar ) < < ' ' ; cout < < get < 2 > ( ar ) < < ' ' < < get < 3 > ( ar ) < < ' ' ; cout < < get < 4 > ( ar ) < < ' ' < < get < 5 > ( ar ) < < ' ' ; cout < < endl ; // Printing array elements using operator[] cout < < 'The array elements are (using operator[]) : ' ; for ( int i = 0 ; i < 6 ; i ++ ) cout < < ar [ i ] < < ' ' ; cout < < endl ; return 0 ; }
산출
The array elements are (using at()) : 1 2 3 4 5 6 The array elements are (using get()) : 1 2 3 4 5 6 The array elements are (using operator[]) : 1 2 3 4 5 6
4. 앞() :- 배열의 첫 번째 요소에 대한 참조를 반환합니다.
5. 뒤로() :- 배열의 마지막 요소에 대한 참조를 반환합니다.
// C++ code to demonstrate working of // front() and back() #include #include // including header file to use stl array and there function using namespace std ; int main () { // Initializing the array elements array < int 6 > ar = { 1 2 3 4 5 6 }; // Printing first element of array cout < < 'First element of array is : ' ; int & a = ar . front (); cout < < a < < endl ; // Printing last element of array cout < < 'Last element of array is : ' ; int & b = ar . back (); cout < < b < < endl ; //change first and last element of array using these references a = 10 ; //now 1 change to 10 b = 60 ; //now 6 change to 60 //lets print array now cout < < 'array after updating first and last element n ' ; for ( auto x : ar ) { cout < < x < < ' ' ; } cout < < endl ; return 0 ; }
산출
First element of array is : 1 Last element of array is : 6 array after updating first and last element 10 2 3 4 5 60
6. 사이즈() :- 배열의 요소 수를 반환합니다. 이는 C 스타일 배열에는 없는 속성입니다.
7. 최대_크기() :- 배열이 보유할 수 있는 최대 요소 수, 즉 배열이 선언된 크기를 반환합니다. size()와 max_size()는 동일한 값을 반환합니다.
// C++ code to demonstrate working of // size() and max_size() #include #include // for size() and max_size() using namespace std ; int main () { // Initializing the array elements array < int 6 > ar = { 1 2 3 4 5 6 }; // Printing number of array elements cout < < 'The number of array elements is : ' ; cout < < ar . size () < < endl ; // Printing maximum elements array can hold cout < < 'Maximum elements array can hold is : ' ; cout < < ar . max_size () < < endl ; return 0 ; }
산출
The number of array elements is : 6 Maximum elements array can hold is : 6
8. 교환() :- swap()은 한 배열의 모든 요소를 다른 배열로 바꿉니다.
CPP // C++ code to demonstrate working of swap() #include #include // for swap() and array using namespace std ; int main () { // Initializing 1st array array < int 6 > ar = { 1 2 3 4 5 6 }; // Initializing 2nd array array < int 6 > ar1 = { 7 8 9 10 11 12 }; // Printing 1st and 2nd array before swapping cout < < 'The first array elements before swapping are : ' ; for ( int i = 0 ; i < 6 ; i ++ ) cout < < ar [ i ] < < ' ' ; cout < < endl ; cout < < 'The second array elements before swapping are : ' ; for ( int i = 0 ; i < 6 ; i ++ ) cout < < ar1 [ i ] < < ' ' ; cout < < endl ; // Swapping ar1 values with ar ar . swap ( ar1 ); // Printing 1st and 2nd array after swapping cout < < 'The first array elements after swapping are : ' ; for ( int i = 0 ; i < 6 ; i ++ ) cout < < ar [ i ] < < ' ' ; cout < < endl ; cout < < 'The second array elements after swapping are : ' ; for ( int i = 0 ; i < 6 ; i ++ ) cout < < ar1 [ i ] < < ' ' ; cout < < endl ; return 0 ; }
산출
The first array elements before swapping are : 1 2 3 4 5 6 The second array elements before swapping are : 7 8 9 10 11 12 The first array elements after swapping are : 7 8 9 10 11 12 The second array elements after swapping are : 1 2 3 4 5 6
9. 빈() :- 이 함수는 배열 크기가 0일 때 true를 반환하고 그렇지 않으면 false를 반환합니다.
10. 채우기() :- 이 함수는 전체 배열을 특정 값으로 채우는 데 사용됩니다.
// C++ code to demonstrate working of empty() // and fill() #include #include // for fill() and empty() using namespace std ; int main () { // Declaring 1st array array < int 6 > ar ; // Declaring 2nd array array < int 0 > ar1 ; // Checking size of array if it is empty ar1 . empty () ? cout < < 'Array empty' : cout < < 'Array not empty' ; cout < < endl ; // Filling array with 0 ar . fill ( 0 ); // Displaying array after filling cout < < 'Array after filling operation is : ' ; for ( int i = 0 ; i < 6 ; i ++ ) cout < < ar [ i ] < < ' ' ; return 0 ; }
산출
Array empty Array after filling operation is : 0 0 0 0 0 0