프로그래밍(301)
-
[effective STL] 항목 28 : reverse_iterator 쓸 때 base() 잘 쓰기
핵심insert나 erase 사용 시 인자로 결국 iterator를 사용하기 때문에reverse_iterator를 iterator로 변환해주어야한다.이때 insert는 상관 없지만 erase는 대응하는 iterator가 아닐 수 있다. 123456789 vector intVec; const int VECSIZE = 10; intVec.reserve(VECSIZE); for (size_t i = 0; i
2016.02.19 -
[CMD] robocopy로 특정 파일 하위 폴더 유지하고 복사하기(+ 특정 폴더 제외)
상황 오늘 회사에서 작업을 하며 필요한 기능이 있었다. \\192.168.xx.xx\folder1\folder2\backup\folder3\folder4 이런 요망한 구조에서 folder2에 중요한 데이터가 있었다. 이 놈들을 data.dat라고 했을 때 문제는 backup에도 이 파일이 있다는 것. 한 마디로 folder2까지 데이터와 디렉토리 구조만 원하고 backup 이하는 복사하지 말아야 한다는 것! 일단 xcopy로 신나게 삽질을 하다가 지식인 https://c.aitl.in에게 도움을 요청했다. (역시 짱짱맨) 헬프 자 일단 /?를 해보자! C:\Users\Jo Minhyuk>robocopy /? ------------------------------------------------------..
2016.02.18 -
[effective STL] 항목 27 : const_iterator -> iterator는 distance와 advance를 사용하자.
핵심(우리가 해서는 안 될 짓)const_iterator와 iterator는 서로 다른 클래스이다.string과 complex의 관게보다도 멀다고 한다.한 마디로 캐스팅이 안 된다. 전혀 엉뚱한 클래스를 캐스팅하려 하지 말자. 해결(const_it -> it)과정1. 컨테이너의 첫 요소를 가리키는 iterator를 생성한다.2. const_iterator가 가리키는 곳 까지 iterator가 뛰면 끝! so simple!3. 거리 계산엔 distance와 점프엔 advance가 사용된다. 그럼 이렇게 하면 되는가?1advance(i, distance(it, constIt));cs안 된다고 하신다. distance의 선언문을 보자12template typename ierator_traits::differe..
2016.02.15 -
[Design Pattern] 싱글톤
제일 처음으로 사용해 본 디자인 패턴이다. 예전에 지인이 해놓은 피티를 보니꽤 내용을 잘 정리해놔서 옮겨 본다.싱글톤이야 지겹게 써봤지만 화룡점정을 찍는 정리. 출처 : https://c.aitl.in/ 홈피 관리자 머리 속에서 정리된 것을 정리한 피피티 싱글톤 패턴전략클래스가 유일한 인스턴스를 갖고, 그 인스턴스는 전역에서 액세스 할 수 있도록 한다.전역변수다! 손해멀티 스레딩에 시간 지연이 생긴다.전역에서 액세스 하기때문에 문제가 발생하면 모든 코드를 둘러봐야 한다.기능 단위 테스트나 변경을 위해 관련 구조만 뽑아내기 어렵다. 개이득단 하나의 인스턴스만 갖도록 강제한다.특정 인스턴스에 어디든 접근하여 자원을 사용할 수 있다. 전역변수다!다른 클래스의 공통 기능부를 통합해 관리할 수 있다. Basic ..
2016.02.15 -
[.NET, C#] 비동기 네트워크 API
비동기 네트워크 메서드System.Net 네임스페이스에 System.Net.Sockets의 Socket 클래스에 정의되어 있다. MSDNhttps://msdn.microsoft.com/library/System.Net.Sockets.Socket_methods(v=vs.110).aspx AcceptAsync123public bool AcceptAsync( SocketAsyncEventArgs e) cs 클라이언트의 연결을 수락한다. ReceiveAsync123public bool ReceiveAsync( SocketAsyncEventArgs e)cs 메시지를 수신한다. SendAsync123public bool SendAsync( SocketAsyncEventArgs e)cs 메시지를 전송한다. Conne..
2016.02.14 -
[effective STL] 항목 26 : 여러 iterator 중 쓸만한 것은 결국 iterator
총 4개의 iterator를 제공한다. iterator, const_iterator, reverse_iterator, const_reverse_iterator 일종의 T*, const T*, 그리고 head 부터인지 tail 부터인지 차이다. iterator의 변환 관계는 다음과 같다. iterator가 좋은 이유 - 어떤 형태의 insert나 erase 멤버 함수는 무조건 iterator만을 넘겨야 한다. - const_iterator를 iterator로 암묵적 변환할 방법이 없다. 방법이 있지만 성능과 안정성이 보장되지 않는다. - reverse_iterator를 iterator로 변환할 수 있지만 변환 후 약간의 조정이 필요하다. const_iterator와 iterator를 동시에 사용할 시 팁 ..
2016.02.10