안녕하세요! 지노비입니다 :) 이번에는 range-Based for loop 그리고 그와 같이 쓰면 좋은 auto type inference에 대해서 알아보겠습니다!
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는 타입 선언에 있어 자료형을 알아서 찾아주는 아주 편리한 기능인데요! 마찬가지로 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
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 자리에 적어줘야 했을텐데 그 수고를 덜어준 셈이 된 것이죠!
제가 준비한 글은 여기까지입니다 부족한 글 봐주셔서 감사합니다 😁