Quick Reference

C++

기초 문법부터 객체지향, 표준 라이브러리, 자원 관리까지 C++ 핵심 개념을 대학 수준으로 정리합니다.

16 cards

제목, 요약, 태그, 섹션 제목 기준으로 찾습니다.

섹션

시작과 문법

3 cards

시작과 문법

변수와 기본 타입

cpp
int count = 3;
double ratio = 0.75;
char grade = 'A';
bool isReady = true;
auto total = count * 10;

C++에서 가장 먼저 익혀야 하는 기본 타입, `auto`, 초기화 문법을 대학 수준으로 정리합니다.

시작과 문법

참조와 const

cpp
std::string name = "Mina";
std::string& alias = name;
const std::string& view = name;

복사를 줄이고 함수 인터페이스를 안전하게 만드는 C++ 참조와 `const` 기본 규칙을 정리합니다.

시작과 문법

iostream 기본

cpp
std::cout << "score = " << score << "\n";
std::cin >> age;
std::getline(std::cin, name);

`std::cout`, `std::cin`, `std::getline`을 중심으로 C++ 표준 입출력의 기본 흐름을 정리합니다.

제어 흐름

2 cards

제어 흐름

조건문 기본

cpp
if (score >= 90) {
    grade = 'A';
} else if (score >= 80) {
    grade = 'B';
} else {
    grade = 'C';
}

`if`, `else if`, `else`, `switch`를 이용한 C++ 기본 분기 구조를 정리합니다.

제어 흐름

반복문 기초

cpp
for (const auto& value : values) {
    std::cout << value << "\n";
}

`for`, range-based `for`, `while`을 중심으로 C++ 반복 처리의 핵심 패턴을 정리합니다.

함수와 클래스

3 cards

함수와 클래스

함수와 오버로딩

cpp
int add(int left, int right) {
    return left + right;
}

double add(double left, double right) {
    return left + right;
}

함수 선언, 반환값, 기본 인자, 오버로딩처럼 C++ 함수 인터페이스의 핵심 규칙을 정리합니다.

함수와 클래스

클래스와 객체

cpp
class Player {
public:
    void levelUp() { level++; }

private:
    int level{1};
};

데이터와 동작을 함께 묶는 C++ 클래스 선언과 객체 생성의 기본 구조를 정리합니다.

함수와 클래스

생성자와 멤버 초기화 리스트

cpp
class User {
public:
    User(std::string name, int level)
        : name(std::move(name)), level(level) {}

private:
    std::string name;
    int level;
};

객체 생성 시점을 제어하는 생성자와 멤버 초기화 리스트의 역할을 정리합니다.

객체지향

1 cards

객체지향

상속과 virtual 함수

cpp
class Animal {
public:
    virtual void speak() const { std::cout << "...\n"; }
};

공통 인터페이스를 기반으로 동작을 바꿔 끼우는 C++ 상속과 다형성의 핵심을 정리합니다.

STL과 알고리즘

3 cards

STL과 알고리즘

vector와 string 기본

cpp
std::vector<int> scores{90, 85, 100};
scores.push_back(70);

std::string title = "RefDock";

가장 자주 쓰는 표준 컨테이너인 `std::vector`와 `std::string`의 기본 조작 패턴을 정리합니다.

STL과 알고리즘

map과 unordered_map

cpp
std::map<std::string, int> ordered;
std::unordered_map<std::string, int> fastLookup;

키로 값을 찾는 대표적인 표준 컨테이너인 `std::map`과 `std::unordered_map` 차이를 정리합니다.

STL과 알고리즘

알고리즘 라이브러리 기본

cpp
std::sort(values.begin(), values.end());
auto it = std::find(values.begin(), values.end(), 10);

`std::sort`, `std::find`, `std::find_if`를 중심으로 C++ 알고리즘 라이브러리의 기본 흐름을 정리합니다.

메모리와 자원 관리

2 cards

메모리와 자원 관리

스마트 포인터와 RAII

cpp
auto user = std::make_unique<User>("Mina");
user->print();

자원 수명 관리를 객체 수명과 묶는 RAII와 `std::unique_ptr` 중심의 현대 C++ 패턴을 정리합니다.

메모리와 자원 관리

move semantics 기본

cpp
std::string name = "RefDock";
std::string target = std::move(name);

복사 비용이 큰 객체를 더 효율적으로 옮기기 위한 C++ move semantics의 핵심 개념을 정리합니다.

현대 C++

2 cards

현대 C++

lambda 기본

cpp
auto square = [](int x) { return x * x; };

짧은 함수를 즉석에서 정의하는 C++ lambda 문법과 캡처 규칙의 기초를 정리합니다.

현대 C++

템플릿 기본

cpp
template <typename T>
T maxOf(T left, T right) {
    return left > right ? left : right;
}

타입을 매개변수처럼 받아 재사용 가능한 코드를 만드는 C++ 템플릿의 가장 기본적인 형태를 정리합니다.