반응형

c++ 26

[c/c++] Boost 주요 기능 정리

boost의 주요 기능들과 그 기능들을 활용하여 구현한 채팅 프로그램에 대해 설명드리겠습니다. 주요 기능들은 다음과 같습니다. Boost::thread Boost::bind boost::function boost::chrono 스마트 포인터 boost::signal boost::mutex boost::asio boost::timer 먼저, 스레드에 대해 설명드리겠습니다. 스레드는 프로세스 내에서 실행되는 흐름의 단위라고 하는데요, 멀티스레드를 사용함으로써 프로세스의 처리성능을 높일 수 있는 장점이 있습니다. boost에서 제공하는 스레드를 사용하기 위해 boost/thread.hpp를 선언해야 하며, 다른 클래스와 다르게 스레드는 복사가 불가능하다는 특징이 있습니다. 스레드를 사용하는 예제가 다음의 코드..

[C/C++] C++과 SQLite 연동하기

SQLite는 오픈소스 파일 DB입니다. API도 간단해서 쉽게 사용할 수 있습니다. SQLite를 간단하게 설치하고 CppSQLite라는 래퍼 클래스를 이용하여 제어하는 방법을 제공합니다. 다운로드 - SQLite 다운로드 : http://www.sqlite.org/download.html 에서 최신버젼을 받아서 압축 해제하면 exe파일이 하나 나옵니다. 설치파일은 아니니 그냥 압축해제만 해놓으시면 됩니다. - CppSQLite 다운로드 : http://www.codeproject.com/database/CppSQLite.asp 에서 최신 버젼을 받습니다. 압축해제하면 나오는 폴더중에 Common 폴더만 프로젝트 폴더로 복사합니다. 사용준비 - 프로젝트를 생성하시고 Common폴더에 있는 CppSQLi..

[공유] 씹어먹는 C 언어 - <24. 더 빠르게 실행되는 코드를 위하여 (C 코드 최적화)>

출처 : http://itguru.tistory.com/129 안녕하세요 여러분~ 이제 저의 마지막 강의(총 41 강)가 되겠네요 ㅎㅎ 그럼, 오늘도 강의를 시작해 볼까요? 혹시 1 강 부터 시작해서 여기까지 도달하신 분이라면 http://itguru.tistory.com/notice/126#/ 에 가셔서 자유 게시판에 꼭 글을 남겨주시기 바랍니다~ 우리의 컴퓨터는 무한정 빠르지 않습니다. 따라서 동일한 작업을 시키더라도 어떠한 방식으로 시키냐에 따라서 그 속도가 엄청나게 차이가 나게 됩니다. 우리는 언제나 코드를 만들 때 '과연 어떻게 해야지 이 작업을 가장 빠르게 할 수 있도록 코드를 만들 수 있을까?' 를 고민 해야 합니다. 이렇게 똑같은 일이라도 더 빠르게 수행할 수 있도록 코드를 짜는 행위를 '..

[퍼옴] 정말 C는 C++보다 빠를까?

갑자기 kldp.org에서 많은 레퍼러가 잡혀서 뭔 일인가 싶어서 들어가봤다. 어떤 분이 정말 C가 C++보다 빠른지에 대한 의문을 제기했다. 이 기회에 잘못된 미신을 타파하고 C++ 가상함수에 대해 좀 더 정확하게 알아보자. 다 좋은데 밑줄 친 문장이 자신의 의견이나 느낌이면 문제 없다. 그런데 저렇게 단정적인 표현을 쓰려면 객관적인 자료가 필요하다 가상 함수 호출에 드는 비용이 정말 미약하다는 데이터를 달라는 것이다! 일단, 글 쓰신 분은 두 가지 문제점을 제기했는데 내가 볼 땐 결국 하나다. 1번에서 제기한 "클레스 설계에 따른 잦은 함수 호출에 드는 비용"은 다소 모호하다. 클래스 설계로 인해 과도한 가상 함수 사용이라면 성능에 문제가 될 수 있지만, 일반 클래스 함수들을 호출하는데 부가적인 비용..

C++ 파일 입출력

C++에서의 파일 입출력을 위하여 fstream.h를 포함하고, 어떤 방법으로 파일을 열어야 하는지를 정하는 파일 입출력 객체를 만들고, 그 객체에게 화면에서와 마찬가지로 입출력 연산을 수행시키면 됩니다. 파일을 열 때 주로 사용하는 속성들은 다음과 같습니다. 속성 내용 ios::in 읽기 가능한 형태로 파일을 연다. ios::out 쓰기 가능한 형태로 파일을 연다. ios::ate 파일을 열 때, File Pointer의 위치를 파일의 끝부분으로 이동시킨다. ios::app 파일을 쓸 때, 파일의 끝부분에 쓰게 한다(app은 append의 약자다) ios::trunc 파일의 내용을 지우고 연다.(trunc는 trucate의 약자이다) ios::binary 파일을 이진 모드로 연다. 읽기를 위한 파일을 ..

C++, cout의 조작자

printf함수와 마찬가지로, cout에서도 입출력 형식을 편하게 제어하기 위한 조작자들이 제공됩니다. 여기서 조작자란 우리가 자주 사용하게 되는 출력 형태를 우리가 직접 관여하지 않고 쉽게 바꿀 수 있도록 해주는 기능을 하는 것 입니다. 조작자 내용 endl 뉴라인(엔터) 문자를 출력하여 스트림을 비운다. flush 스트림을 비운다. dec 10진수 형식으로 출력한다. hex 16진수 형식으로 출력한다. oct 8진수 형식으로 출력한다. setbase(int base) base에 해당하는 진수로 출력한다. setw(int width) 너비를 width로 설정한다. setposition(int pos) pos에 해당하는 자리수로 설정한다. setfill(char c) C에 해당하는 문자로 빈자리를 채우도..

반응형