Notice
Recent Posts
Recent Comments
Link
오븐 노트
[C++] auto 본문
#include <iostream>
using namespace std;
#include <vector>
#include <list>
#include <deque>
#include <map>
#include <set>
#include <algorithm>
class Knight
{
public:
int _hp;
};
template<typename T>
void Print(T t)
{
cout << t << endl;
}
int main()
{
// Modern C++ (C++11 ~ )
/*
int a = 3;
float b = 3.14f;
double c = 1.23;
Knight d = Knight();
const char* e = "rookiss";
*/
auto a = 3;
auto b = 3.14f;
auto c = 1.23;
auto d = Knight();
auto e = "rookiss";
// auto는 일종의 조커카드
// 형식 연역 (type deduction)
// 알아서 추론하여 맞추어라
// 추론 규칙은 생각보다 복잡해질 수 있음
// 주의점
// 기본 auto는 const, &(참조)를 무시함
int& reference = a;
const int cst = a;
auto test1 = reference;
auto test2 = cst;
vector<int> v;
v.push_back(1);
v.push_back(2);
v.push_back(3);
for (vector<int>::size_type i = 0; i < v.size(); i++)
{
// int& data = v[i]; // 기본형
// auto data = v[i]; // 참조를 무시하므로 의미없어짐
auto& data = v[i]; // 참조를 강제해줘야 함
data = 100;
}
// auto로 전부 변경하면 가독성이 너무 떨어지니 일반적으로는 놔두는게 좋다
// auto를 주로 사용하는 경우
map<int, int> m;
auto ok = m.insert(make_pair(1, 100)); // 타이핑이 너무 길어지는 경우
for (auto it = v.begin(); it != v.end(); ++it) // 대중적으로 많이 사용하는 경우
{
cout << *it << endl;
}
return 0;
}
[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문 - 인프런 | 강의
C++ 카테고리의 글은 인프런 Rookiss님의 강의를 공부하며 정리하는 내용입니다.
이미 알고 있는 내용도 다시 정리 되어있을 수 있습니다.
모든 글은 제가 공부하기 위해 작성합니다.
'Develop > C++' 카테고리의 다른 글
[C++] nullptr (0) | 2023.12.07 |
---|---|
[C++] 중괄호 초기화 { } (0) | 2023.10.16 |
[C++] algorithm (0) | 2023.09.30 |
[C++] 연습 문제 (0) | 2023.08.31 |
[C++] set, multimap, multiset (0) | 2023.08.23 |