exit() -싱글스레드 환경에서 프로그램 종료 시 사용된다. -exit()를 호출하더라도 프로그램이 바로 종료되지 않고 다음의 경우 객체의 소멸자가 호출된다. --전역 정적 클래스 객체를 생성한 경우 --전역/지역 싱글톤 동적 객체를 사용한 경우 (클래스 정적 변수에 할당) quick_exit() -exit()를 멀티스레드 환경에서 사용하면 글로벌/정적 객체들은 스레드 종료 없이 소멸되려고 한다. -멀티스레드 환경에서 정상적으로 에러코드를 반환하고 프로그램을 종료하기 위해 quick_exit()를 호출해야 한다. -quick_exit() 호출 시 각 객체의 소멸자를 호출하지 않는다. --위의 exit()에서 소멸자가 호출되는 경우에도 quick_exit()는 소멸자 호출없이 바로 종료된다. abort(..
#include #include #include using namespace std; void insertItem(unordered_map& items, const int& key, const string& value) { items.insert(unordered_map::value_type(key, value)); } string getItem(unordered_map& items, const int& key) { return items[key]; } void main() { unordered_map items; insertItem(items, 0, "Park"); insertItem(items, 1, "Kim"); insertItem(items, 2, "Hong"); insertItem(items, ..
boost의 주요 기능들과 그 기능들을 활용하여 구현한 채팅 프로그램에 대해 설명드리겠습니다. 주요 기능들은 다음과 같습니다. Boost::thread Boost::bind boost::function boost::chrono 스마트 포인터 boost::signal boost::mutex boost::asio boost::timer 먼저, 스레드에 대해 설명드리겠습니다. 스레드는 프로세스 내에서 실행되는 흐름의 단위라고 하는데요, 멀티스레드를 사용함으로써 프로세스의 처리성능을 높일 수 있는 장점이 있습니다. boost에서 제공하는 스레드를 사용하기 위해 boost/thread.hpp를 선언해야 하며, 다른 클래스와 다르게 스레드는 복사가 불가능하다는 특징이 있습니다. 스레드를 사용하는 예제가 다음의 코드..
SQLite는 오픈소스 파일 DB입니다. API도 간단해서 쉽게 사용할 수 있습니다. SQLite를 간단하게 설치하고 CppSQLite라는 래퍼 클래스를 이용하여 제어하는 방법을 제공합니다. 다운로드 - SQLite 다운로드 : http://www.sqlite.org/download.html 에서 최신버젼을 받아서 압축 해제하면 exe파일이 하나 나옵니다. 설치파일은 아니니 그냥 압축해제만 해놓으시면 됩니다. - CppSQLite 다운로드 : http://www.codeproject.com/database/CppSQLite.asp 에서 최신 버젼을 받습니다. 압축해제하면 나오는 폴더중에 Common 폴더만 프로젝트 폴더로 복사합니다. 사용준비 - 프로젝트를 생성하시고 Common폴더에 있는 CppSQLi..
출처 : http://itguru.tistory.com/129 안녕하세요 여러분~ 이제 저의 마지막 강의(총 41 강)가 되겠네요 ㅎㅎ 그럼, 오늘도 강의를 시작해 볼까요? 혹시 1 강 부터 시작해서 여기까지 도달하신 분이라면 http://itguru.tistory.com/notice/126#/ 에 가셔서 자유 게시판에 꼭 글을 남겨주시기 바랍니다~ 우리의 컴퓨터는 무한정 빠르지 않습니다. 따라서 동일한 작업을 시키더라도 어떠한 방식으로 시키냐에 따라서 그 속도가 엄청나게 차이가 나게 됩니다. 우리는 언제나 코드를 만들 때 '과연 어떻게 해야지 이 작업을 가장 빠르게 할 수 있도록 코드를 만들 수 있을까?' 를 고민 해야 합니다. 이렇게 똑같은 일이라도 더 빠르게 수행할 수 있도록 코드를 짜는 행위를 '..
갑자기 kldp.org에서 많은 레퍼러가 잡혀서 뭔 일인가 싶어서 들어가봤다. 어떤 분이 정말 C가 C++보다 빠른지에 대한 의문을 제기했다. 이 기회에 잘못된 미신을 타파하고 C++ 가상함수에 대해 좀 더 정확하게 알아보자. 다 좋은데 밑줄 친 문장이 자신의 의견이나 느낌이면 문제 없다. 그런데 저렇게 단정적인 표현을 쓰려면 객관적인 자료가 필요하다 가상 함수 호출에 드는 비용이 정말 미약하다는 데이터를 달라는 것이다! 일단, 글 쓰신 분은 두 가지 문제점을 제기했는데 내가 볼 땐 결국 하나다. 1번에서 제기한 "클레스 설계에 따른 잦은 함수 호출에 드는 비용"은 다소 모호하다. 클래스 설계로 인해 과도한 가상 함수 사용이라면 성능에 문제가 될 수 있지만, 일반 클래스 함수들을 호출하는데 부가적인 비용..