[바킹독의 실전 알고리즘] 코드 작성 Tips
1. STL과 함수 인자
- 함수 인자로 int가 들어갈 때 -> 원본에 영향 X
- 함수 인자로 array가 들어갈 때 -> 원본에 영향 O
- 함수 인자로 구조체가 들어갈 때 -> 원본에 영향 X
참조자
void swap3(int& a, int& b) {
int tmp = a;
a = b;
b = tmp;
}
void swap3(int& a, int& b) {
int tmp = a;
a = b;
b = tmp;
}
함수 내의 코드에서는 그냥 int를 쓰듯이 원본을 바꿀 수 있음!
STL
- 원본에 영향 X (복사해서 보냄)
- 별도로 함수를 만들어버리면 복사하는 과정에서 시간복잡도가 늘어남
- e.g. vector
2. 표준 입출력
공백 입력 방법
- scanf나 cin 둘 다 공백 앞까지만 입력을 받음
- 해결방법은 아래와 같음
string s;
getline(cin, s);
cout << s;
string s;
getline(cin, s);
cout << s;
❗️주의 ❗️
getline은 '\n'을 구분자로 사용하고, 이를 버퍼에서 지움
그러나 cin은 '\n', '띄어쓰기', 'tab'을 구분자로 사용하고, 이를 버퍼에서 지우지 않음
cin을 쓰고 getline을 쓰면 cin.ignore() 사용 필수
cin/cout 시간초과 방지
ios::sync_with_stdio(false); // C stream과 C++ stream 동기화를 끊음 -> 섞어쓰면 안됨!
cin.tie(0); // 기본적으로 cin 명령을 수행하기 전에 cout 버퍼를 비워줄 필요가 없음
cout.tie(0);
endl 대신 /n 쓰기
- 중간중간 버퍼를 비울 필요 X
Author And Source
이 문제에 관하여([바킹독의 실전 알고리즘] 코드 작성 Tips), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@jieun_han/바킹독의-실전-알고리즘-코드-작성-Tips저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)