• Jan
  • Feb
  • Mar
  • Apr
  • May
  • Jun
  • Jul
  • Aug
  • Sep
  • Oct
  • Nov
  • Dec
  • Sun
  • Mon
  • Tue
  • Wed
  • Thu
  • Fri
  • Sat
  • 27
  • 28
  • 29
  • 30
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

C++ 함수 아카이브

알고리즘 풀이에 자주 쓰이는 함수 아카이브

입력 시간 줄이기

 cin.tie(NULL); cout.tie(NULL);
 ios_base::sync_with_stdio(false); //main 함수 내에 작성

for

for(int i:vectorName) {...} // i가 vectorName 내 원소들을 순회

array

sizeof() // 배열 크기

vector

v.push_back(' '); // 맨 뒤에 원소 삽입
v.erase(v.begin() + index); // 특정 인덱스의 원소 삭제
vector<int> students(n+2, 0) //n+2의 size만큼 0으로 초기화 (선언 시)
 answer.insert(answer.end(), temp.begin(), temp.end()); //answer벡터에 temp벡터 붙이기

<algorithm>

sort(처음, ); // 기본 오름차순 정리
// 벡터 내림차순 정렬
sort(v.begin(), v.end(), greater<int>());
// 배열 내 중복값 제거
arr.erase(unique(arr.begin(), arr.end()),arr.end());
// string벡터 사전순 정렬
bool comp(string s1, string s2){
  return s1 < s2; //사전순 정렬
}
// ...
string arr[5] = {"asda", ..., "asdss"};
sort(arr, arr+5, comp)
// 대칭 차집합 연산 (겹치는거 다 빼고 남은것만 반환하는게 대칭차집합)
// 두 벡터 다 정렬되어있어야 하는 듯?
auto iter = set_symmetric_difference(v1.begin(), v1.end(), v2.begin(), v2.end(), result.begin());

<string>

string str1 = to_string(12345);
str1.at(index); // char 반환
str1.size();
str1.length(); // 길 (size함수와 같음)
str1.append("d");  // char는 append 못함.
str1 += "d" // 위랑 같음
str2.append(str1, 0, 4); // str1의 0~4 idx만큼 str2 뒤에 append
stoi(str1); // int로
stof(str1); // float
stol(str1); // long
stod(str1); // double
stoll(str1); // long long
str1.erase(str1.begin() + idx);
str1.push_back(s); // char를 append할 때만 사용 가능
s[i] = toupper(s[i]); //대문자로
s[i] = tolower(s[i]); //소문자로
isupper(s[i]); //대문자인지
islower(s[i]); //소문자인지
s.substr(시작점 인덱스,캐릭터 개수);