목록전체 글 (71)
영넌 개발로그

STL (Standard template library) C++의프로그래밍 개발 효율성을 높여주는 라이브러리이다. C++ 국제 표준에서 제정만하고 구현은 개발자가 알아서 하는 것이다. data structure와 algorithm 등을 구현해둔 라이브러리이다. container에 데이터를 저장할 수 있는 공간이다. vector, array, deque(덱): double ended que, list 등이 있다. deque는 앞과 뒤 모두 in/out이 가능하다. 일반적인 큐처럼도 사용이 가능하다. vector와 array, deque는 모두 배열이어서 연속된 공간이 필요하다. 이런 연속되지 않은 공간을 사용하기 위해 C언어에서 SLL과 DLL을 사용했는데, STL 에서는 SLL은 forward list,..

Function template 여러가지 타입(type)을 동시에 처리 가능한 함수이다. 서로 인수의 타입이 다르고 같은 이름의 함수를 만드는 것 외에 다른 방법으로 Function template을 사용할 수 있다. 이를 통해 오버헤드를 줄일 수 있다. default 타입도 지정해줄 수 있고, 여러개를 만들 수도 있다. default 타입은 마지막에만 지정해줄 수 있다. 사용법 : template 예를 들어 integer에 대해서만 동작하는 함수 get_max가 있다고 해보자. 이 함수는 둘 중 큰 값을 반환한다. 이 때 double type 인수 5.8과 10.09를 넣으면 형 변환이 일어나고 10이 출력되게 된다. ( double형에서는 동작하지 않는다) #include using namespace..

exception handling c언어에서 error가 나면 stop으로 프로그램 종료가 되었다. 이건 별로 좋지 않은 현상이다. 에러시 다른 조치를 취할 수 있도록 해주기 위해 예외를 처리해주어야 한다. 그거를 하는 방법엔 try catch 라는 방법이 있다. 예를 들어, 할당된 영역을 벗어나서 메모리를 사용하려하면 런타임 에러가 뜬다. (Expression: vector subscript out of range) 디버깅 모드에서는 런타임 동안에 체크를 해서 보여준다. 코드를 상용화할 때에는 릴리즈 모드로 해야하는데 릴리즈 모드에서는 속도가 중요하기 때문에 메모리를 벗어난다던가 하는 것에 대해서는 체킹하는게 빠진다. 따라서 릴리즈 모드에서는 아래와 같은 에러가 나지 않고 콘솔에서 잘 실행 되는 것을 ..