_ STL 컨테이너를 인자로 넘겨줄 때는 Reference variable로 넘겨주자
배열을 사용할 때 행렬의 순서를 헷갈리지 말자
long long 타입을 이용할 때는 계산 결과가 확실히 long long인지 확인하자
(long long A = B + c -> long long A = (long long)B + C)
string str
str.c_str()을 통해 const char* 값으로 변환 가능
음수의 mod(%)연산의 결과값은 음수
itoa 대신 to_string 함수를 이용 가능
vector 컨테이너를 초기화 하는법
vector<int> vec(SIZE, NUMBER);
SIZE크기만큼 공간을 확보하고 NUMBER로 초기화시킨다.
2-D vector의 경우
vector<vector<int>> vec (ROW, vector<int> vec(COL, NUMBER);
로 선언하면 된다.
벡터의 가장 0번째 인덱스를 지우기 위해선 erase 멤버함수를 사용한다.
vec.erase(ret.begin())
string의 부분 string을 가져올 떈 substring을 이용한다.
ret.substr(0, 15);
https://programmers.co.kr/learn/courses/30/lessons/42888
map<int, string> hash
hash.insert({int, string});
if (hash.count(int){ hash[int] = "stirng"
count함수는 특정 값이 포함된 횟수를 리턴한다.
map에서 키 값은 고유하므로 항상 0, 1을 리턴한다.
따라서 count함수를 이용해 key값의 유무를 알 수 있다.
키-벨류를 추가/수정할 땐 포함 여부를 조사할 필요가 없다.
hash[int] = "stirng"
라고 쓰면 자동으로 추가/수정이 이루어진다.
C++에선 cstring
C에선 string.h에 포함된다.
strtok(char* string, char* spliter)
string에서 spliter에 포함된 문자가 나오기 직전까지의 문자열을 반환한다.
spliter에 " "를 넣으면 어절별로 나눌 수 있다.
만약 2번째 단어를 구하고 싶다면 string 자리에 NULL을 넣는다.
static하게 초기화되어 있으므로 다음 어절을 찾아낸다.
더이상 나눌 수 없으면 NULL을 반환한다.
cstring에 포함된다.