std::vector는 C++ 표준 템플릿 라이브러리(STL)의 일부로서, 동적 배열과 유사한 구조를 가진 컨테이너입니다.

std::vector의 주요 특징:

  1. 동적 크기: 백터는 크기가 동적으로 변경될 수 있습니다. 즉, 런타임에 항목을 추가하거나 제거할 수 있습니다.
  2. 연속 메모리: 백터는 내부적으로 연속된 메모리 공간에 데이터를 저장합니다. 따라서 배열처럼 인덱스를 사용하여 빠르게 접근할 수 있습니다.
  3. 자동 메모리 관리: 백터는 내부적으로 메모리를 자동으로 할당하고 해제합니다.

std::vector의 사용 예:

#include <iostream>
#include <vector>

int main() {
    std::vector<int> numbers;

    // 값을 추가합니다.
    numbers.push_back(1);
    numbers.push_back(2);
    numbers.push_back(3);

    // 인덱스를 사용하여 값에 접근합니다.
    std::cout << numbers[1] << std::endl;  // 출력: 2

    // 크기와 용량을 조회합니다.
    std::cout << "Size: " << numbers.size() << std::endl;  // 출력: 3
    std::cout << "Capacity: " << numbers.capacity() << std::endl;

    // 반복자를 사용하여 백터의 요소를 반복합니다.
    for(int num : numbers) {
        std::cout << num << " ";
    } // 출력: 1 2 3

    return 0;
}

이 외에도 std::vector는 여러 메서드와 기능을 제공합니다. 예를 들면 insert, erase, resize, reserve 등이 있습니다. C++의 std::vector를 효과적으로 사용하려면 해당 메서드와 기능들을 숙지하는 것이 중요합니다.


C++에서의 참조는 변수나 객체의 별칭을 제공하는 방법입니다. 참조를 사용하면 변수나 객체에 대한 간접적인 접근을 할 수 있습니다. 여기서 주요 포인트와 예제를 통해 C++의 참조 개념을 설명하겠습니다.

  1. 참조의 선언: 참조는 & 기호를 사용하여 선언됩니다. 예를 들어, int 타입의 변수에 대한 참조는 다음과 같이 선언할 수 있습니다.

    int num = 10;
    int &ref = num;

  2. 참조의 특징:
    • 참조는 선언과 동시에 초기화되어야 합니다.
    • 한번 초기화된 참조는 다른 변수나 객체를 참조하도록 변경할 수 없습니다.
    • 참조는 NULL 값을 가질 수 없습니다.
  3. 참조와 포인터의 차이:
    • 포인터는 메모리 주소를 저장하는 반면, 참조는 별칭으로 작동하며 메모리 주소를 직접 저장하지 않습니다.
    • 포인터는 *와 & 연산자를 사용하여 역참조하고 주소를 얻는 반면, 참조는 추가적인 연산자 없이도 원래의 변수나 객체에 접근할 수 있습니다.
  4. 참조의 활용:
    • 함수의 인자로 사용될 때, 값을 복사하는 것이 아닌 원래의 변수나 객체에 대한 접근을 제공하므로 효율적입니다.
    • 함수에서 여러 값을 반환할 필요가 있을 때 사용됩니다.
  5. 예제:위의 예제에서 swap 함수는 참조를 인자로 받아 원래의 변수의 값을 직접 변경합니다.

    void swap(int &x, int &y)
    {
        int temp = x;
        x = y;
        y = temp;
    }

    int main()
    {
        int a = 5, b = 10;
        swap(a, b);
        cout << "a: " << a << ", b: " << b; // a: 10, b: 5
        return 0;
    }

       이러한 참조의 개념은 C++에서 매우 중요하며, 효율적인 프로그래밍을 위해 잘 알아두어야 합니다.

+ Recent posts