auto&

유녜쥬·2024년 8월 8일

C++

목록 보기
7/9

auto

  • 변수의 형식을 자동으로 추론
  • 컴파일러가 변수의 형식을 알아서 결정

&

  • 참조자 !
  • 특정 객체를 가리키며, 직접 해당 객체에 접근, 수정 가능
  • 포인터와 유사하지만, 포인터처럼 메모리 주소를 저장하는 것이 아니라, 변수의 별칭 역할을 함

auto&

  • 변수의 형식을 자동으로 결정 (형식 추론) + 참조
  • 복사를 피하고, 원본 객체 직접 수정 가능

ex

#include <iostream>
#include <vector>
using namespace std;

int main() {
    vector<int> vec = {1, 2, 3, 4, 5};

    // auto& 사용
    for (auto& element : vec) {
        element *= 2;  // 원본 요소를 직접 수정
    }

    // 결과 출력
    for (const auto& element : vec) {
        cout << element << " ";
    }

    return 0;
}

비교

for (int i : vec) {
    i *= 2;
}
  • 변수 i는 벡터 요소의 값을 복사
  • i는 vec의 각 요소 값을 복사한 것이므로, i를 수정해도 vec의 원본 요소에는 영향을 미치지 X
  • 따라서 vec의 원본 데이터는 수정 X
for (auto& element : vec) {
    element *= 2;
}
  • 변수 element는 벡터 요소 참조 !
  • element는 vec의 각 요소를 참조하므로, element를 수정하면 vec의 원본 요소가 직접 수정됨
  • 따라서 vec의 원본 데이터가 수정됨
profile
Junior Backend Developer

0개의 댓글