fill_n(arr, 크기, 초기화 값);
pair 쓰는 자리에 똑같이 쓰면 됨 !
struct student {
int a;
int b;
int c;
string name;
};
vector<student> v(N);
//v[i].a
//v[i].b
//v[i].c
//v[i].name
int n = stoi(str);
string str = to_string(num);
int n = c - '0';
char c = n + '0';
지역변수 | 전역변수 |
---|---|
쓰레기값으로 초기화 | 0으로 초기화 |
stack 영역에 할당 | data 영역에 할당 |
메모리 크기 제한 있음 | 메모리 크기 비교적 자유로움 |
※ OS는 성능 상의 이유로 stack 영역에 메모리 제한을 걺
⚠️범위 10억(1,000,000,000) 넘어가면 long long형으로 선언하기
조건
? a
: b
(a < b) ? a : b;
비트 시프트 연산으로 간단하게 가능
int a = 10
int b = a << 1; // 20
int b = a >> 1; // 5
int b = a << c; // 10의 c제곱
⚠️음수 나오거나 이상한 값 나오면 자료형 때문에 에러나는 경우가 대부분
정수
%d
%ld
%lld
실수
%f
%lf
8진수
%o
16진수
%x
%X
+
기호로 가능
⛔cin과 getline 함께 사용할 경우, 입력버퍼 비워줘야 함
ex)
3
abc 123 xxx
cin >> n;
cin.ignore();
getline(cin, str);
1234125 이런 식으로 띄어쓰기 없이 입력 받으면 cin이 어려움
scanf(“%1d”,&num);
endl
대신 '\n'
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
c 입출력 그대로 사용
(c++의 입출력으로 개행에 endl을 사용하면 출력 버퍼를 비우는 시간이 소요되기 때문)
#include
<stdio.h>
⭐문자열
#include
<iostream>
cin >> a[i]; // 입력
cout << a[i]; // 출력
cout << a[i] << endl; // 개행
cout << a[i] << ' '; // 띄어쓰기
시작과 끝점을 알려주지 않아도 알아서 처음부터 끝까지 순회를 해주는 반복문
※ 인덱스 정보 없음
※ 배열 요소 변경 불가능
for(int n : num_array) {
}
break | continue |
---|---|
반복문 탈출 | 반복문 끝으로 이동해 다음 반복으로 넘어감 |
특정 조건 만족 시, 반복문 벗어날 때 사용 | 전체 반복 중 특정 조건을 만족하는 경우 제외할 때 사용 |