int x = 10; | 정수 (4 바이트) |
float f = 3.14f; | 부동소수점 (4 바이트) |
double d = 3.14159; | 배정밀도 (8 바이트) |
char c = 'A'; | 문자 (1 바이트) |
char str[] = "hello"; | 문자열 (char 배열) |
int arr[5] = {1,2,3,4,5}; | 배열 선언 |
const int MAX = 100; | 상수 |
int *ptr = &x; | int 포인터 |
*ptr = 20; | 포인터 역참조 |
ptr++; | 포인터 연산 |
int **pp = &ptr; | 이중 포인터 |
void *vp; | void 포인터 |
int (*fp)(int); | 함수 포인터 |
malloc(size) | 메모리 할당 |
calloc(n, size) | 할당 및 초기화 |
realloc(ptr, size) | 메모리 재할당 |
free(ptr) | 메모리 해제 |
sizeof(type) | 타입 크기 |
std::cout << "text" << std::endl; | 표준 출력 |
std::cin >> variable; | 표준 입력 |
std::getline(std::cin, str); | 한 줄 읽기 |
std::string s = "hello"; | 문자열 타입 |
s.length() / s.size() | 문자열 길이 |
s.substr(pos, len) | 부분 문자열 |
s.find("text") | 부분 문자열 찾기 |
int *p = new int; | 단일 할당 |
int *arr = new int[10]; | 배열 할당 |
delete p; | 단일 해제 |
delete[] arr; | 배열 해제 |
std::unique_ptr<T> | 유니크 스마트 포인터 |
std::shared_ptr<T> | 공유 스마트 포인터 |
std::make_unique<T>(args) | unique_ptr 생성 |
std::make_shared<T>(args) | shared_ptr 생성 |
int &ref = x; | Lvalue 참조 |
int &&rref = 10; | Rvalue 참조 |
const int &cref = x; | const 참조 |
std::move(obj) | 이동 시맨틱 |
std::forward<T>(arg) | 완벽 전달 |
class MyClass { }; | 클래스 정의 |
public: | 공개 접근 |
private: | 비공개 접근 |
protected: | 보호 접근 |
MyClass() { } | 생성자 |
~MyClass() { } | 소멸자 |
MyClass(const MyClass&) | 복사 생성자 |
MyClass(MyClass&&) | 이동 생성자 |
class Derived : public Base | 공개 상속 |
virtual void func() | 가상 함수 |
virtual void func() = 0 | 순수 가상 |
override | 오버라이드 지정자 |
final | final 지정자 |
dynamic_cast<T*>(ptr) | 런타임 캐스트 |
T operator+(const T& rhs) | 이항 연산자 |
T& operator=(const T& rhs) | 대입 연산자 |
bool operator==(const T& rhs) | 동등 연산자 |
T& operator[](size_t i) | 첨자 연산자 |
operator T() | 변환 연산자 |
std::vector<T> | 동적 배열 |
std::array<T, N> | 고정 배열 |
std::deque<T> | 양방향 큐 |
std::list<T> | 이중 연결 리스트 |
std::forward_list<T> | 단일 연결 리스트 |
std::set<T> | 정렬된 고유 집합 |
std::multiset<T> | 정렬된 다중 집합 |
std::map<K, V> | 정렬된 키-값 |
std::multimap<K, V> | 정렬된 다중 맵 |
std::unordered_set<T> | 해시 집합 |
std::unordered_map<K, V> | 해시 맵 |
v.push_back(x) | 끝에 추가 |
v.emplace_back(args) | 제자리 생성 |
v.pop_back() | 끝에서 제거 |
v.insert(it, x) | 위치에 삽입 |
v.erase(it) | 위치에서 삭제 |
v.clear() | 모두 삭제 |
v.size() | 크기 얻기 |
v.empty() | 비어있는지 확인 |
std::sort(begin, end) | 범위 정렬 |
std::stable_sort(begin, end) | 안정 정렬 |
std::partial_sort(begin, mid, end) | 부분 정렬 |
std::binary_search(begin, end, val) | 이진 검색 |
std::lower_bound(begin, end, val) | 하한 |
std::upper_bound(begin, end, val) | 상한 |
std::find(begin, end, val) | 요소 찾기 |
std::find_if(begin, end, pred) | 조건으로 찾기 |
std::transform(begin, end, out, func) | 요소 변환 |
std::copy(begin, end, out) | 범위 복사 |
std::move(begin, end, out) | 범위 이동 |
std::fill(begin, end, val) | 값으로 채우기 |
std::reverse(begin, end) | 범위 뒤집기 |
std::rotate(begin, mid, end) | 범위 회전 |
std::unique(begin, end) | 연속 중복 제거 |
std::accumulate(begin, end, init) | 요소 합계 |
std::inner_product(b1, e1, b2, init) | 내적 |
std::partial_sum(begin, end, out) | 부분 합 |
std::min_element(begin, end) | 최소값 찾기 |
std::max_element(begin, end) | 최대값 찾기 |
std::count(begin, end, val) | 발생 횟수 |
auto x = 10; | 자동 타입 추론 |
decltype(expr) | 표현식에서 타입 추론 |
auto func() -> int | 후행 반환 타입 |
auto [a, b] = pair; | 구조적 바인딩 (C++17) |
[](int x) { return x*2; } | 기본 람다 |
[=](int x) { } | 값으로 캡처 |
[&](int x) { } | 참조로 캡처 |
[this](int x) { } | this 캡처 |
[x=std::move(y)]() { } | 초기화 캡처 (C++14) |
[]<typename T>(T x) { } | 제네릭 람다 (C++20) |
std::thread t(func, args); | 스레드 생성 |
t.join(); | 스레드 대기 |
t.detach(); | 스레드 분리 |
std::mutex mtx; | 뮤텍스 |
std::lock_guard<std::mutex> lock(mtx); | RAII 잠금 |
std::async(std::launch::async, func) | 비동기 실행 |
std::future<T> | 미래 결과 |
std::atomic<T> | 원자적 타입 |
concept MyConcept = ...; | 컨셉 정의 |
requires (T x) { ... } | requires 절 |
std::ranges::sort(v) | Ranges 알고리즘 |
v | std::views::filter(pred) | Views 파이프라인 |
co_await expr | 코루틴 await |
co_yield value | 코루틴 yield |
std::span<T> | 비소유 뷰 |
auto operator<=>(const T&) = default; | 3방향 비교 |
template<typename T> | 템플릿 선언 |
template<typename T, typename U> | 다중 타입 매개변수 |
template<int N> | 비타입 매개변수 |
template<typename... Args> | 가변 템플릿 |
template<> class MyClass<int> | 완전 특수화 |
template<typename T> class MyClass<T*> | 부분 특수화 |
std::is_same_v<T, U> | 같은 타입 확인 |
std::is_integral_v<T> | 정수형 확인 |
std::is_pointer_v<T> | 포인터 확인 |
std::remove_reference_t<T> | 참조 제거 |
std::decay_t<T> | 타입 감쇄 |
std::enable_if_t<cond, T> | SFINAE 헬퍼 |