본문 바로가기

기타/C++ & Data Structure

(3)
VC 애러! (crt0.obj) LNK2001: unresolved external symbol _main를 잡아보자. LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main Debug/FILENAME.exe : fatal error LNK1120: 1 unresolved externals 컴파일은 잘 넘어 가는데 링크에서 자꾸 이런 에러가 나는 경험 많이 해보셨죠? 일단 이 애러는 main() 함수를 찾을 수 없다는 링크 에러입니다. API를 처음 사용할 때 원인을 알 수 없는 이 애러때문에 고생을 많이 하는데요. 대체로 WinMain()를 쓰고 Win32 Console Application 으로 프로젝트를 생성한 경우가 많습니다. 반대로 Win32 Application 프로젝트에서 main() 을 쓰면 WinMain() 을 찾을 수 없다는 오류가 뜨..
STL 컨테이너들의 특징 및 비교 4.2 컨테이너 선택하기 다음 질문들은 특정 문제를 풀고자 할 때 어떤 종류의 컨테이너를 선택하는 것이 좋은가에 관한 몇가지 선택 기준을 제시하고 있다. 콜렉션내의 값들을 어떤 방식으로 접근하는가? 임의접근이 필요하다면, vector와 deque를 사용하라. 순차접근만으로 충분하다면, 다른 컨테이너를 써도 무방하다. 콜렉션내의 값들에 순서를 매길 것인가? 값들이 나열되는 방식에는 여러가지가 있다. 컨테이너가 유지되는 동안 계속 순서가 유지되어야 한다면, set을 선택해야 한다. set에 삽입을 하면 자동적으로 순서에 맞게 놓여진다. 반면에, 순서가 어느 한시점에서만 중요시된다면, list나 vector에 값들을 삽입하고, 적절한 때에 해당 컨테이너를 정렬을 하는 것이 더 수월하다. 만약에 데이터구조 내에..
[C++] 견고한 프로그래밍의 기법 assert()함수 assert()함수는 보통 함수 안에서 인자를 받았을 때 그 인자의 값이 정상적으로 들어왔는지 일차적으로 검사하는 역할을 한다. 이것으로 예기치 않은 값이 들어 왔을 때 오류를 띄워서 오류를 확인할 수 있으므로 보다 더 견고한 프로그래밍을 할 수 있다. assert()함수를 많이 사용할 수록 견고하고 완벽한 프로그래밍을 할 수 있다고 하니 많이 사용하도록 하자~ 사용하려면 #include - c++ #include - c 라이브러리를 인클루드 해야한다. 사용법은 function (int a) { assert( a > 0); ... } 와 같이 간단한 형식으로 사용할 수 있다. 만약 assert()안의 구문이 거짓이면 오류를 띄운다.