티스토리 뷰

1. STL과 함수 인자

 

함수 인자

 

첫 번째 코드에서는 int를 함수 인자로 보내면 값이 복사되는 형태로 함수로 들어가기 때문에, main에 있는 원본 값은 변하지 않음!

 

두 번째 코드에서는 C++에서 배열을 함수로 넘겨주는 경우 배열의 주소를 넘겨주는 것이기 때문에 함수 인자를 받은 함수 내에서 값을 변화시키면 원본 값에도 영향을 줌.

 

세 번째 코드에서는 구조체의 경우를 볼 수 있는데, 첫 번째 코드와 비슷하게 구조체를 넘겨줄 때도 값이 복사되는 형태로 넘어가기 때문에 구조체 원본 값에는 영향을 주지 못함.

 

참조자(reference)

 

만약 두 값을 바꾸는 swap 함수를 구현해야됐다면 C에서는 포인터를 활용하여 swap 함수를 만들었음. (위에와 같은 맥락으로, 값만 함수 인자로 보내는 건 원본 함수에 영향을 줄 수 없으니깐!) 하지만, C++에서는 이 방법 말고도 참조자라는 것을 쓸 수 있음!

 

참조자는 이미 선언된 변수에 다른 이름, 즉, 별명을 붙여주는 것과 동일하다고 이해하면 될 듯함. 따라서 위의 코드에서도 기존 main 함수에서 선언된 두 변수를 함수 인자로 넘겨줄 때 a와 b라는 새로운 별명을 붙여 자유롭게 사용 가능한 걸로 이해하면 될 듯!

 

📌 참조자 개념 참고

http://www.tcpschool.com/cpp/cpp_cppFunction_reference

 

STL(Standard Template Library) 중 vector

 

STL은 C++에서 제공되는 라이브러리인데, 우선은 맛보기로 vector을 알아보자!

 

vector는 가변 배열로 배열의 크기를 유동적으로 관리할 수 있음. vector 기능을 사용하기 위해서는 vector 헤드를 사용해야 함. vector 배열을 선언한 이 후에는 일반 배열처럼 인덱스를 이용해 접근하고 다 할 수 있음.

void func1(vector<int> v){
	v[10] = 7;
}
int main(void){
	vector<int> v(100);
    func1(v);
    cout << v[10];
}

//출력 결과는 0!

위 예제에서 보듯이 STL도 구조체와 비슷하게 함수 인자로 넘기게 되면 복사를 하여 값을 넘기는 형태이기 때문에 원본 값에는 아무런 영향을 주지 않음!!

 

그래서 STL이 함수 인자를 넘길 때 복사본을 넘긴다는 게 어떤 포인트에서 우리한테 도움이 되냐

== 나중에 코드를 짤 때 시간 복잡도를 대강 파악하는 데 좋음!

처음에는 생으로 모두 복사가 되어 함수 인자로 전달이 되지만, 뒤에 예제는 참조자를 이용했기 때문에 호출할 때 마다 복사본을 따로 계속 만드는 것이 아니라 참조 대상의 주소 정보만 넘겨주기에 시간복잡도가 줄어듦

 

2. 표준 입출력

 

cin  >>  저장하고 싶은 값

 

cout  <<  출력할 값

 

cin, cout을 사용하고 싶다면 ios::sync_with_stdio(0), cin.tie(0)를 꼭 써주자!!

 

이는 코테 문풀에 더 유리하기 때문임. 시간을 단축시킬 수 있는 코드임! 이걸 해두지 않으면 입출력 양이 많을 경우 시간 초과가 날 수 있음. 

 

자세한 이유와 원리를 알고싶다면 바킹독님 블로그를 참조하자..😇

https://blog.encrypted.gg/923

 

3. 코드 작성 팁

 

1) 코딩테스트와 개발은 다르다!

깔끔한 코드 <<<< 간결하고 빠르고 내 방식대로 짜는 코드

 

2) 출력 맨 마지막 공백 혹은 줄바꿈이 추가로 있어도 상관 X

출력한 값들 맨 마지막 요소에도 공백이나 줄바꿈이 추가되어있더라도 체점 결과에는 아무 상관이 없다고 함.

 

3) (권장) 디버거는 굳이 사용하지 않아도 됨

코테 정답 코드를 꽤 짧기 때문에 디버거를 사용하지 않고 중간중간 print문을 넣어주면서 디버깅을 하는 게 편할 것. 외려 디버거를 사용할 경우 혼란스러울 수도!

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
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
글 보관함