본문 바로가기

ALGO

[C++] 파이썬으로 C++ 익히기

- 기본 뼈대

#include <iostream>

using namespace std; // 표준 함수  std:: 생략 가능

 

- 기본 출력
cout << "Hello";

줄바꿈은 endl 혹은 \n

소수점 제한은 cout << fixedcout.precision(n)

 

- 기본 자료형

정수 : int, long long

실수 : double

문자 : char

문자열 : string

형 변환 (double)a / b

 

- 조건문

삼항연산 b = a > 10 ? 50 : 3;

elif 는 else if 로

and &&

or ||

 

- 반복문

for( 초기화식 ; 조건식 ; 증감식 )

do { 여기에 조건을 만족할 때만 수행되었으면 하는 코드를 작성, 무조건 한번은 실행됨 } while (조건);

너무 느려서 기본은 일단 패스...

 

- 그리드 벡터 저장
int arr_2d[4][4];

 

- 함수 및 재귀

void PrintStar(int n) { // 1부터 n번째 줄까지 별을 출력하는 함수

PrintStar(n - 1); // 1부터 n - 1번째 줄까지 출력하는 함수

for(int i = 0; i < 5; i++) cout << "*";

cout << endl;

}

출력이 없을때 void 있을때 형식

 

- deque

삽입 push_front(x) 앞에 추가 O(1)
  push_back(x) 뒤에 추가 O(1)
  insert(it, x) 특정 위치 삽입 O(N)
삭제 pop_front() 앞에서 제거 O(1)
  pop_back() 뒤에서 제거 O(1)
  erase(it) 특정 위치 삭제 O(N)
  clear() 모든 요소 삭제 O(N)
접근 front() 첫 번째 요소 반환 O(1)
  back() 마지막 요소 반환 O(1)
  at(i) i번째 요소 반환 O(1)
  [] i번째 요소 접근 O(1)
크기 size() 요소 개수 반환 O(1)
  empty() 비었는지 확인 O(1)

deque는 큐와 스택을 모두 대체할 수 있는 강력한 자료구조입니다. 🚀

 

- 정렬

#include <algorithm>

sort(v.begin(), v.end());

 

🚀 map<string, int>에서 기본값이 자동으로 0인 이유

C++의 std::map과 std::unordered_map은 operator[]를 사용하면 자동으로 기본값이 할당됨
기본값은 int의 경우 0 (zero-initialization)