2016년 5월 21일 토요일

스택과 큐

스택 큐 물어봄
   재귀함수 관련이 스택
   팩토리얼 재귀
   재쉬함수 주고 이거 재귀안돌게 바꿔보시오( 스택사용 )

트리


   트리의 목적 :  검색에 최적화된 컨테이너
   2진트리, 4진트리 ......
  
   2진트리는 Stl Map 이나 Set 키값을 찾을때 사용되는 알고리즘으로
   알고있다.
단여기에 검색효율을 높이기 위해 레드블렉트리를 적용한것으로 알고있다.
   레드블렉트리
   한쪽으로 데이터가 쏠리게 되면 검색효율이 떨어지는데.
   이때 각노드의 일정 규칙에따라 검은색과 빨간색으로 구별하여
   데이터가 트리한쪽으로 쏠리지 않게 해주어 검색효율을 높여주는 알고리즘

가비지

힙에 쌓인 참조가 끊긴 메모리 인스턴스 ( 가비지 컬렉터에의해 자동소멸된다 )

ref와 out의 차이

MSDN:
ref  :

- 인수가 값의 복사가 아닌 참조로 전달
- ref 키워드를 사용하려면 메서드 정의와 메서드 호출 모두 명시적으로 ref를 사용해야 한다.
- ref 매개 변수에 전달 되는 인수는 전달 되기 전에 초기화 해야 합니다.
- 이러한 방식은 명시적으로 초기화할 필요가 없는 out과 다른 부분이다.
- ref와 out은 오버로딩 되지 않는다.
- 이렇게 생성하면 컴파일 되지 않는다.

- ref와 out은 다음과 같은 메서드에서는 사용할 수 없습니다.
     
          1. 비동기(async) 한정자를 사용하여 정의된 비동기 메서드
          2. yield return 또는 yield break문을 포함하는 반복기 메서드


out :
- ref와 비슷하다.
- 참조를 통해 인수를 전달할 수 있다.
- out 매개 변수를 사용하려면 메서드 정의와 호출 메서드가 모두 명시적으로 out 키워드를 사용해야 한다.


- ref 파트에서 설명한 것과 같이 둘은 오버로드 되지 않는다.

-둘의 차이점 :
 
     ref : 메서드 내부에서 변수를 수정하려고 할 때 사용
    out : 메서드 내부에서 생성된 값을 반환하려 할 때 사용