본문 바로가기

분류 전체보기

tbb를 배워보자.. parallel_for의 사용법.. 1 OpenMP, PPL, TBB 이 3개중 한개만이라도 일단 배워보자 하는 마음에. 어제 속도 테스트에 혹해서 TBB에 대해서 본격적으로 배워보기로 했습니다.. 먼저 TBB의 parallel_for에 대해서 알아보겠습니다.. #include #include #include #include #include using namespace std; class TbbTest { std::vector* const m_vecTest; public: void operator() (tbb::blocked_range&r) const { std::vector* vecTemp = m_vecTest; for(int i = r.begin(); i != r.end(); i++) { (*vecTemp)[i]=i; } } TbbTest.. 더보기
병렬 프로그래밍(PPL,openMP,TBB)의 for문 속도 비교..!! openMP와 TBB를 공부하던 도중 얼마나 빨라지는지 한번 비교를 해보았습니다.. 비교하는김에 PPL까지 포함해서 3가지 다 비교해보았고. 비교의 대상은 가장 기초적이고 책의 첫부분에 나오는 for문... 일단 코드부터.. #include #include #include #include #include #include #include #pragma comment(lib,"d3dx9.lib") using namespace std; int _tmain(int argc, _TCHAR* argv[]) { D3DXMATRIX mat; clock_t start, stop; start = clock(); #pragma omp parallel for { for( int i = 0; i < 100000000; ++i .. 더보기
error LNK 2005 xxxx이(가) MSVCPRT(D).lib 혹은 LIBCPMT(D).lib 에 이미 정의되어 있습니다.. 오류날때 대처방법 2011/06/13 - [C..C++....] - error LNK 2005 xxxx이(가) MSVCRT(D).lib 혹은 LIBCMT(D).lib 에 이미 정의되어 있습니다.. 오류날때 대처방법 MSVCPRT(d).LiB나 LIBCPMT(d).LIB 도 위에 나온 글과 같은 세팅문제로 생기는 문제입니다.. MSVCRT.LIB나 LIBCMT.LIB는 C Run-Time Libaray(CRT)에 관련된 파일이고 MSVCPRT(d).LiB나 LIBCPMT(d).LIB는 Standard C++ Libaray로 인해 생기는 문제입니다.. 이러한 문제가 생기는 원인을 간략히 설명하자면.. msvcrt 같은경우는 c 에서 사용하던 함수 예를들어 printf로 설명을 드리면 printf함수 하나를 가지고 총 6가지의.. 더보기
문자열 사용.. CString(CAtlstring)을 사용하면 기본적을 지원하는 기능이지만 stl의 string 을 사용하다보면 불편한점이 한둘이 아니다.. 가장먼저 CString #include //헤더 #include //헤더 /* #ifdef _UNICODE //유니코드일 경우 typedef CAtlStringW CAtlString; #else typedef CAtlStringA CAtlstring; #end typedef CAtlString CString; */ void main() { CString szTest; szTest.format(_T("%d,%s"),10,_T("test")); szTest.MakeUpper(); //대문자로 변환! szTest.MakeLower(); //소문자로 변환! int pos .. 더보기
람다(Lambda) 활용하기.! c++ 0x 에 람다함수가 새로 추가 되었다.. visual studio 2010버전에서부터 쓸수 있는데.. 기본적인 람다식 auto func = []() { std::cout 더보기
c/c++에서 문자열 인코딩 변환! 유니코드 멀티바이트 UTF-8 쉽게 변환해보자~! 문자열을 인코딩 하는 방법은 여러가지가 있습니다.. 가장 널리 알려진 방법으로는 유니코드 -> 멀티바이트 wchar_t strUnicode[256] = {0,}; charstrMultibyte[256] = {0,}; wcscpy_s(strUnicode,256,L"유니코드"); int len = WideCharToMultiByte( CP_ACP, 0, strUnicode, -1, NULL, 0, NULL, NULL ); WideCharToMultiByte( CP_ACP, 0, strUnicode, -1, strMultibyte, len, NULL, NULL ); stl이용wstring strUni = L"유니코드"; int len = WideCharToMultiByte( CP_ACP, 0, &strUni[.. 더보기
SyntaxHighlighter 티스토리 사용시 오류에 대해서.. Can`t find brush for: xxx 에러. 소스코드의 내용을 올려볼려고 하는도중.. SyntaxHighlighter 라는걸 알게 되어서 이곳저곳 다른 분든들의 블로그를 보며 설치를 하였지만.. 다른 분들은 잘 되는거 같은데 이상하게도 brush를 찾을수 없다는 말만 나왔다.. 대체 이유가 뭘까..? HTML/CSS에서 Skin.html 부분에 내가 잘못 적은게 있나..? 아니면 js.css를 다 안올렸나..? 경로가 틀렸나...? 그런데 아무리 봐도 전부 제대로 였고.. 틀린건 없었다.. 그래서 열심히 구글링으로 Can't find brush for: xxx 라는걸로 찾아보았지만 명확한 해결책은 없었고.. 그나마 힌트 라고 하면 대소문자 를 정확하게 써야 된다는것이였다.. 그리고 어디선가 들어본듯한... 티스토리에 대소문자를 자기마음대로 변경한다.. 더보기
error LNK 2005 xxxx이(가) MSVCRT(D).lib 혹은 LIBCMT(D).lib 에 이미 정의되어 있습니다.. 오류날때 대처방법 error LNK2005: _printf이(가) MSVCRTD.lib(MSVCR100D.dll)에 이미 정의되어 있습니다. F:\Project\GGangster\GGangster\libcmtd.lib(printf.obj) ...... ..... 수많은 오류가 나왔다.. 이와 같은 설정의로 에러를 경고로 나오게끔 하는 방법이 있지만 근본적인 해결방법도 아니고 수없이 많은 warning도 보기 좋지 않다.. 일단 이 오류가 나오는 원인은 빨간 색 부분의 런타임 라이브러리때문에 생기는 문제이다... 프로젝트를 진행하다 보면 외부 라이브러리를 많이 사용하게 되는데. 외부 라이브러리는 MT(d)로 컴파일 되어있으나 내가 사용하는 프로젝트는 MD(d)로 되어 있으면 어김없이 LINK2005 오류가 발생하게 된다.... 더보기
gtest,unittest++ GTEST http://soupim.tistory.com/48 GTEST 최신버전 다운받기 http://code.google.com/p/googletest/downloads/list GTEST ui http://code.google.com/p/gtest-gbar/ UnitTest++ http://blog.naver.com/likecaleb/40052750598 VisualUnitTest++ http://code.google.com/p/vutpp/ VS 2010 지원 안된다 ㅠ.ㅠ UTViewer http://blog.naver.com/empty_wagon?Redirect=Log&logNo=20123288203 더보기
std::tr1::bind / function 사용방법 #include #include using namespace std; using namespace std::tr1::placeholders; // tr1::bind에서 _1을 쓰기위한 namespace class Test { public: typedef int result_type;// operator()을 위해서 꼭 써줘야 된다! public: int operator() (int k) const { cout 더보기