글과 사진, 그리고 이야기

IE & SWCON/Data Structure (C++)

array class

뱃놀이가자 2024. 2. 7. 18:00
728x90

https://www.aladin.co.kr/shop/wproduct.aspx?ItemId=257288899

 

코딩 테스트를 위한 자료 구조와 알고리즘 with C++

C++ 자료 구조부터 그리디 알고리즘, 분할 정복 알고리즘, 그래프 알고리즘, 동적 계획법과 같은 다양한 알고리즘을 설명한다. 또한, 전통적인 자료 구조와 C++ STL 클래스 구현 사이의 관계를 설명

www.aladin.co.kr

본 책을 사용하여 공부하는 내용이고 해당 글은 상업적으로 배포하고자 하지 않고 개인 공부용입니다

 

  • std::array는 메모리를 자동으로 할당하고 해제함
  • std::array는 원소의 타입과 배열 크기를 매개변수로 사용하는 클래스 템플릿임
  • #include<array> 꼭 해야함
#include <iostream>
#include<array>
int main()
{
    std::array<int, 10> arr1;

    arr1[0] = 1;
    std::cout << "arr1 배열의 첫 번째 원소 " << arr1[0] << std::endl;

    std::array<int, 4> arr2 = { 1,2,3,4 };
    std::cout << "arr2의 모든 원소: ";

    for (int i = 0; i < arr2.size(); i++)
        std::cout << arr2[i] << " ";
    std::cout << std::endl;
}

 

.at() 

.at(index)형식으로 사용하며 인자로 전달된 index 값이 유효하지 않으면 out_of_range 를 반환함

 

.begin() 위치 반환

.end() 위치 반환

의 멤버변수도 존재 / 이 둘은 반복문에 사용함 아무래도 주소, itteration() 느낌이지 않을까 파이썬에서?

함수 설명
front() 배열의 첫 번째 원소에 대한 참조를 반환합니다.
back() 배열의 마지막 원소에 대한 참조를 반환합니다.
data() 배열 객체 내부에서 실제 데이터 메모리 버퍼를 가리키는 포인터를 반환합니다.
반환된 포인터를 이용하여 다양한 포인터 연산을 수행할 수 있습니다.
이 기능은 포인터를 함수의 인자로 받는 예전 스타일의 함수를 사용할 때 유용합니다.

▲ 그림 1-6 std::array의 원소 접근 함수

 

#include <iostream>
#include<array>
int main()
{
    std::array<int, 5> arr = { 1,2,3,4,5 };
    std::cout << arr.front() << std::endl;
    std::cout << arr.back() << std::endl;
    std::cout << *(arr.data()+1) << std::endl;
    // 1,5,2출력  
    //array size를 10으로 하고 5개만 입력하면 나머지 5개는 0으로 남아있음

}

 


연습문제 1: 동적 크기 배열 구현하기 

to be continued..

728x90

'IE & SWCON > Data Structure (C++)' 카테고리의 다른 글

forward_list  (1) 2024.02.14
vector  (2) 2024.02.07
연속된 자료 구조와 연결된 자료구조  (1) 2024.02.07
[C++ 기초] part 3. Loop  (0) 2024.01.31
[C++기초] Part 2. Complex Data  (0) 2024.01.28