2014년 2월 14일 금요일

압축 알고리즘 (Huffman)

자주쓰이는 문자에 가장 작은 비트(자릿수)를 할당
적게 쓰이는 문자일수록 큰 비트(자릿수) 할당
예)
대상 문자열 : CDDCACBCBCCCBBCDA

A -> 2번 출현
B -> 4번 출현
C -> 8번 출현
D -> 3번 출현


위에서 부터 빈도수가 큰 트리에 0, 작은 트리에 1 의 비트값을 부여함

부모 노드에서 부터 읽은 비트값 = 문자를 대체할 '비트열' 이 됨!

A -> 001
B -> 01
C -> 1
D -> 000


CDDCACBCBCCCBBCDA -> 1000000100110110111101011000001
( 17 바이트 )                          ( 8바이트 (31비트) )

약 50%의 압축륙을 보이고 있음






2014년 2월 11일 화요일

남의 바구니부터 채울 생각을 하라.

임종을 앞둔 앤드류 카네기에게 누군가가 물었다.
“당신은 역사상 가장 유명한 기업가입니다.
당신이 그토록 성공할 수 있었던 비결은 무엇입니까?”
앤드류 카네기가 대답했다.
“상대방의 바구니부터 철철 넘치도록 가득 채우시오.
그러고 나면 돈을 버는 것은 식은 죽 먹기라오.”
- 제프리 폭스, ‘CEO가 말하는 CEO’에서

2014년 2월 10일 월요일

만장일치로 결정된것은 무효다.

탈무드에 의하면 사형을 언도할 경우,
판사들이 만장일치로 판결한 경우는 무효다.
그 까닭은 재판에서는 언제나 두 가지 견해가 있어야지
한쪽의 의견 밖에 나타나지 않는다는 것은
공정한 재판이 아니라는 생각에서이다.
- ‘유대인의 비즈니스는 침대에서 시작된다’에서

breakpoint 안먹는 문제

브레이크 포인트가 안걸린다. 
("중단점이 현재 적중되지 않습니다. 이줄과 관련된 실행 코드가 없습니다.
전처리기 지시문 또는 컴파일러/링커 최적화가 원인인거 같습니다")
1. 옵션->디버깅->일반->소스 파일이 원래 버전과 정확하게 일치해야 함 

2.  더미 코드 한줄 추가

3. 

1.70 [서명 없는 UTF-8 인코딩 자동 검색] 옵션이 꺼져 있는 Visual Studio 편집기에서 소스 파일에 가비지 값이 보이는 경우가 있을 수 있습니다.
Visual Studio 에서, [도구]->[옵션]->[텍스트 편집기]->[일반]의 [서명 없는 UTF-8 인코딩 자동 검색] 옵션이 기본으로 꺼져 있습니다. [서명 없는 UTF-8 인코딩 자동 검색] 옵션이 꺼져있는 컴퓨터에서는 서명 없는 UTF-8 형식의 파일을 기본 코드 페이지로 열는 경우가 있기 때문에, 편집기에서 가비지가 보일 수 있습니다.

이 문제를 해결하려면

1. [도구]->[옵션]->[텍스트 편집기]->[일반]을 선택한 후 [서명 없는 UTF-8 인코딩 자동 검색] 옵션을 켜십시오. 이 후에도 이 문제가 발생하지 않습니다. 참고. [서명 없는 UTF-8 인코딩 자동 검색] 옵션을 켤 경우, UTF-8 영역과 한국어 (ks_c_5601-1987) 영역에 중복되어 있는 문자들만 파일에 포함되어 있을 경우 서명 없는 UTF-8 파일을 한국어 파일로 잘못 인식하여 가비지가 발생할 수 있습니다.
2. 혹은 해당 파일을 [다른 이름으로 저장]-> [인코딩하여 저장]을 선택하여 서명 있는 UTF-8 파일 형식으로 바꿀 수 있습니다.


http://www.microsoft.com/korea/msdn/vstudio/support/knownIssues/default.aspx 


2014년 2월 9일 일요일

스마트 포인터란?

포인터 타입의 클래스를 생성하여 포인터의 생성 및 삭제를 함수단에서 처리해 줌으로써 (함수에서는 지역변수 사용) 함수가 끝나면 자동으로 메모리 해제를 해주게 됨(일반적으로 new를 사용해서 쓰면 Heap에 저장하게 되므로 개발자가 직접 메모리 해제를 해주어야 하지만 지역변수는 Stack에 쌓이기 때문에 자동으로 해제가 됨)
단점: 두개이상의 스마트 포인터가 하나의 대상을 가리키는 것이 허용되지 않음(삭제가 두번 일어남)->STL 컨테이너의 내부타입으로 사용하기 곤란함

참조 카운팅 스마트 포인터



스마트 포인터와 비슷하지만 동일 대상을 가리키더라도 카운팅 개수를 유지하여 0이 되면 삭제하는 방식

추상 클래스를 인스턴스화할 수 없습니다.

error C2259:  추상 클래스를 인스턴스화할 수 없습니다.
 다음 멤버가 원인입니다.




-> 원인이 되는 멤버(함수)를 선언하지 않아서 생기는 오류

error C2491: dllimport 정적 데이터 멤버을(를) 정의할 수 없습니다.

- from MSDN 
'identifier': dllimport 함수을(를) 정의할 수 없습니다.
데이터, 정적 데이터 멤버 및 함수는 dllimport로 선언할 수 있지만 dllimport로 정의할 수는 없습니다.

 // C2491.cpp
// compile with: /c
// function definition
void __declspec(dllimport) funcB() {}   // C2491

// function declaration
void __declspec(dllimport) funcB();   // OK


시작

시작