Inventory
-
용어정리@ 16. 1 ~ 17. 1/면접관련 2016. 12. 6. 21:13
인라인 : 함수의 몸체부분이 함수호출 문장을 완전히 대체했을때 인라화가되었다고 한다. C의 매크로함수와 같다. 함수의 매개변수로 선언된 참조자는 지역변수와 동일한 성격을 갖는다.즉, 함수의 반환이나 함수 호출이 종료되면 참조가 매개변수는 사라진다.반환형이 참조형인 경우, 반환 값을 무엇으로 저장하느냐에 따라서 그 결과에 차이가 있으므로 적절한 선택해야함.int& 테스트(int& test);일반변수일경우 = 테스트(num1);참조변수일경우 = 테스트(num1);두 가지 방식은 차이가 있다. 일반 변수면 num1과 일반변수는 별개다.그러나 참조형일때 num1과 참조변수는 같다또 반환값이 값일때는 절대로 참조형 변수로 얻을 수 없다. 왜냐면 반환 값은 상수나 다름없기 때문에.. 또한 함수내에서 선언된 지역변수..
-
네트워킹 기초@ 16. 1 ~ 17. 1/네트워크 프로그래밍 2016. 12. 5. 23:43
tcp / ip를 먼저 알기 위해서는 프로토콜을 알아야 한다.기본적으로 규정을 이야기하는데 약속 이라고도 한다. 스트림....네트워크에서는 보낸 개수랑 받는개수가 틀리수도 시작이 데이터가 틀릴 수도..데이터의 끝이 틀릴 수도..패킷 : 인터넷 표준에서 주고 받는 데이터 단위(스트림이나 메시지는 패킷이라는 것으로 쪼개지고 조립되는 과정이 반복됨..) 레이턴시 : 전송되는 데이터가 목적지에 도착하는데 걸리는 시간네트워크 통신을 하기 위한 것.. UDP : 사용자가 정의한 메시지를 전송하는 통신규약..다대다 통신가능..패킷 드랍이 발생했을때 운영체제가 재송신을 해주는 일이 없음..멀티미디어나 통신 게임 등에서 이 프로토콜 사용기관총 ㄴ난사 케릭터 이동 같은것 빼고는 다 TCp TCP : 전송 제어 프로토콜, ..
-
C++ 11 기능정리@ 16. 1 ~ 17. 1/면접관련 2016. 12. 5. 13:20
1. RValue우측값이라고 하죠. 솔직히 말해 코딩에 편리함을 가져다 주지는 않는 녀석이고 이해하기도 쉽지 않지만, STL알고리즘을 비롯하여 임시객체를 생성하고 파괴하는 일이 잦은 코드에서는 큰 성능 향상을 불러올 수 있는 개념입니다. ?12345void Ex1(){ std::vector vec; vec.push_back(SomeClass(1, 2, "3"));}이런 코드가 있다고 치면, RValue 개념이 없던 시절에는 먼저 SomeClass 객체를 생성하고, 그 다음에 인자로 넘기기 위해서 복사생성자를 호출하겠죠. 그리고 push_back 함수 안으로 넘어가서 삽입될때 다시 한번 복사가 일어날 겁니다. 그리고 push_back 함수를 빠져나올때 인자가 파괴되고, push_back 함수를 빠져나온 다..
-
이진트리, 힙, 이진탐색트리 삽입삭제 정리다@ 16. 1 ~ 17. 1/면접관련 2016. 12. 4. 23:09
이진트리에서는 그냥 단순히 특정 노드 아래에 삽입을 하면되는데..삭제도 마찬가지 자식들 관리만 잘하면됨 힙에서는 삽입할때 완전 이진트리의 형식으로 마지막 위치에 삽입하고 WALKUP을 한다. 부모와 비교하면서 올라가면됨삭제역시 루트 노트를 지우고? 가장 마지막 노드를 루트에 넣고 WALKDOWN을 한다. 이진탐색트리는 삽입할때 루트에서부터 검색을 시작한다 (자신이 들어갈 위치를 검색함) 같은값이 있으면 안됨..삭제는 좀 복잡함.1) 자식 노드가 없으면 그냥 노드 삭제 부모 연결관리만 해주면됨2) 자식 1개라면 삭제하고 자식 링크릉 부모의 다음 링크로 연결(현재 삭제되는 자신의 위치)3) 자식이 2개라면 1: 왼쪽에서 가장 큰 자식 2: 오른쪽에서 가장 작은 자식 을 찾는다 보통 1번을 함그리고 그 삭제된..
-
빅오표기법이란@ 16. 1 ~ 17. 1/면접관련 2016. 12. 4. 22:16
빅오 표기법이란? 어떤 하나의 함수의 복잡도를 정의하는 데 즐겨 사용하는 것. 간단히 말하자면 알고리즘이 처리할 자료집합의 크기가 성장함에 따라 알고리즘의 효율이 어떻게 변화하는지를 대략적이나마 추정하는 하나의 함수라고 정의 할 수 있다. 알고리즘의 복잡도를 표현하는 데 흔히 쓰이는 함수들이 몇 가지 있는데, 복잡도의 낮은 것부터 높은 순으로 나열해보자면 (상수), (log₂n), (n), (nlog₂n), n², n³, 2ⁿ 이라고 한다. O(c) 빅 O 표기에서 c는 상수를 뜻한다. 상수 함수의 그래프는 항상 수평을 유지한다. 이는 알고리즘의 수행에 걸리는 시간이 자료집합의 크기에 상관없이 항상 동일하다는 뜻이다. 대체로 이런 함수들이 가장 빠른 것으로 간주된다. O(log₂n) 로그 기반의 알고리즘..
-
레드블랙트리@ 16. 1 ~ 17. 1/자료구조 2016. 12. 4. 22:14
조건1. 노드는 레드 혹은 블랙이다2. 루트노드는 블랙이다.3. 모든 리프 노드는 블랙이다.4. 레드 노드의 자식노드 양쪽은 언제나 모두 블랙이다. (레드 노드가 연달아 나올 수 없고, 블랙 노드만이 레드 노드의 부모가 될 수 있다.)5. 어떤 노드로부터 시작되어 리프노드에 도달하는 모든 경로에는 리프노드를 제외하면 모두 같은 개수의 블랙 노드가 있다/ 레드-블랙 트리는 자료의 삽입과 삭제, 검색에서 최악의 경우에도 일정한 실행 시간을 보장한다(worst-case guarantees). 이는 실시간 처리와 같은 실행시간이 중요한 경우에 유용하게 쓰일 뿐만 아니라, 일정한 실행 시간을 보장하는 또 다른 자료구조를 만드는 데에도 쓸모가 있다. 예를 들면, 각종 기하학 계산에 쓰이는 많은 자료 구조들이 레드-..
-
메모리 풀@ 16. 1 ~ 17. 1/면접관련 2016. 12. 4. 21:08
메모리 풀을 쓰는 이유 : 메모리 할당 / 해제를 요청하면 시스템 콜이 발생된다.메모리 파편화 문제를 해결하는 방법이기도 함.(근데 이건...OS가 프레임 기법 /페이징 기법을 처리해주어서..요즘은 신경안써도된다는데..) 기능은1. 미리 큰 메모리를 할당 / 해제하는 기능2. 미리 할당한 큰 메모리에서 원하는 크기 만큼 할당 / 해제하는 기능( - 여기까지 기본적인 chunk의 기능들)3. 큰 메모리가 더 필요할 수 있으므로, 이러한 큰 메모리르 관리하는 기능(복수운용) 1번 보면 미리 큰 메모리를 할당하는 방법은 큰 메모리에서 작은 메모리로 쪼개는 방법에 따라서 할당 방법이 달라진다라..고정크기냐, 원하는 크기냐인데..대부분은 고정크기로 한다 왜냐면. 복잡하지 않으니까.고정블럭단위라는 장점..하지만 사..