[c++] range-Based for loop and auto type inference

Zinovy·2022년 1월 4일
0
post-thumbnail

안녕하세요! 지노비입니다 :) 이번에는 range-Based for loop 그리고 그와 같이 쓰면 좋은 auto type inference에 대해서 알아보겠습니다!



range-Based for loop

range-Based for loop은 c++11부터 지원하는 기능인데요! 한국어로 범위 기반 for 문입니다.

바로 어떻게 사용하는지 알아보도록 하죠!

사용법

for(원소 선언 : 순회 가능한 모든 것들(array, vector, map...));

구현

#include <iostream>
#include <algorithm>

using namespace std;

int main(void){
    int arr[10];
    
    fill(arr, arr + 10, 7)
    
    for(int e : arr)
    	cout << arr[e] << ' ';
}

결과

7 7 7 7 7 7 7 7 7 7



auto type inference

auto type inference는 타입 선언에 있어 자료형을 알아서 찾아주는 아주 편리한 기능인데요! 마찬가지로 c++11부터 지원하는 기능입니다!

어떻게 사용하는지 볼까요?

사용법

auto 변수명 =;

구현

#include <iostream>

using namespace std;

int main(void){
    auto v1 = 7;
    auto v2 = "Hello World!";
    auto v3 = 2.718;
    
    cout << typeid(v1).name() << '\n';
    cout << typeid(v2).name() << '\n';
    cout << typeid(v3).name() << '\n';
}

결과

int
std::string
double



range-Based for loop + auto type inference

auto type inference는 또한 range-Based for loop와 함께 사용하면 훨씬 강력합니다! 예시로 보시죠!

구현

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

int main(void){
    vector<int> v(10);
    
    fill(v.begin(), v.end() + 1, 7);
    
    for(auto e : v)
    	cout << v[e] << ' ';
}

결과

7 7 7 7 7 7 7 7 7 7



원래라면 vector<int>::iterator 라는 자료형을 직접 auto 자리에 적어줘야 했을텐데 그 수고를 덜어준 셈이 된 것이죠!





제가 준비한 글은 여기까지입니다 부족한 글 봐주셔서 감사합니다 😁

profile
개발자가 되고 싶어요

0개의 댓글