본문 바로가기

엘키스공간/엘키스코딩공방

[잡다한코딩] 플로이드워셜 알고리즘 짜보기 http://hmjo.tistory.com/195 옛날 코드 보니깐 추억이 새록새록. 블로그에 코드가 잘못 되었다고 댓글이 달려서 오랜만에 복습을 했다.일단 그림이 잘못 되어 있던 것을 좀 고치고.코드는 문제가 없는데..ㅋㅋㅋㅋ 코드 짜 놓은게 ..거의 한 천만년전 C98 코드 같아서 다시 짜봤다.예전에 경로 추적도 이해 안되서 빼먹고 막 짰던거 같은데 ㅋㅋㅋ VS2015 기준 C++11 소스 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929.. 더보기
[잡다한코딩] Map insert로 뭘 쓰지? 어느 날 아는 동생(디버프)에게 형은 map에 insert 할 때 뭘로 해요? 라는 질문을 받았다.나는 보통 make_pair를 지금껏 사용하고 있었는데 사실.. 맵알못이라 그냥 저걸 사용했다.그래서 공부를 하는 겸 이것 저것 찾아봤더니value_type, pair, make_pair 이렇게 세 가지로 주로 사용하고 있다.세간에 알려진 바로는 value_type가 제일 빠르다고 한다.회사에서도 value_type으로 된 코드들을 꽤 많이 본 것 같다. 어떤 블로그에서 본 예시 make_pair가 실제로 느리다고 한 코드다. 12345678 std::map tmpMap; for (size_t i = 0; i 더보기
[잡다한코딩] 조건에 따라 enum 값 리턴하는 람다펑션 만들어보기 회사에서 코드를 짜다가 간단한 람다 펑션을 쓸 일이 생겼다.일반적으로 함수냐 매크로냐 자주 고민하게 되는 부분이라고 생각한다.예제를 즉흥적으로 짜봤다. (실제 회사 게임 코드와는 관계 없습니다.) 12345678910111213141516171819202122232425262728293031323334353637383940414243444546#include #include #include enum class Arrow : unsigned int { SAME = 0, UP, DOWN };using UiSomeContentsArrowVec = std::vector;void SomeFunc(const int&, UiSomeContentsArrowVec&); void main(){ UiSomeContentsA.. 더보기
counted_ptr 구현 서론스마트 포인터를 공부하며 참조 카운팅 형식으로 객체 관리하는 클래스를 만들어보았다.물론 소스를 참고했지만.. 이게 구현하다보니 어디서 다운 받았는지 기억이............ 구현counted_ptr.h (템플릿) 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667#pragma once // counted_ptrtemplate class counted_ptr {public: // 포인터를 이용한 초기화 new를 통해 초기화한다. explicit counted_ptr (T* p = 0) : m_ptr(p), m_count(new .. 더보기
비트 조작 유틸로 만들기 서론비트 조작은 어렵다! 하지만 알아두면 쉽다!유틸로 사용해보기 위해 만들어보았다. 소스헤더123456789101112131415161718192021#pragma once/* Utility using namespace*/namespace MH_UTIL{ // Get Bit bool getBit(int num, int i); // Set bit int setBit(int num, int i); // Clear bit int clearBit(int num, int i); // Update bit int updateBit(int num, int i, int v); // Print Consol bit void printBitConsol(int num);}Colored by Color Scriptercs cpp.. 더보기
더블 링크드 리스트 서론템플릿은 역시! 짱짱맨! 메인을 통으로 넣었다! 코드1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581.. 더보기
싱글 링크드 리스트 서론 아카데미 중간쯤에 정말 미친듯이 타임어택을 쳤던 그 코드!! 지금 하면 또 될지 모르겠지만 일단 구조 파악하는덴 역시.. 최강.. 코드 #include #include using namespace std; // 요소(데이터부) typedef struct tagElement { int id; // id로검색(중복체크) char name[ _MAX_FNAME ]; }ELEMENT,*LPELEMENT; // 노드 typedef struct NODE { // 정적 상수인 정수 계열 데이터 멤버만 클래스 내부에서 초기화될 수 있습니다. static int nodeCount; LPELEMENT element; // 원소 NODE *next; // 다음노드 }NODE,*LPNODE; // 외부 초기화 int N.. 더보기
큐로 메시지 큐 구현하기 서론메시지 큐 방식은 윈도우 기본 프로시저에서 보내는 형태도 있고,포트폴리오때 패킷 처리 함수를 돌릴때도 사용했다. 구조는 대충 이런 느낌으로. 큐는 내가 작성한 LinkedListQueue와 CircularQueue로 구현했다. 메시지 큐123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990#include #include #include #include #include "MH_CircularQueue.h"#include "MH_LinkedListQueue.. 더보기