프로그래밍(301)
-
[effective STL] 항목 33 : remove 같은 알고리즘 사용할 때 포인터 컨테이너 주의
동적으로 할당한 객체를 관리하는 컨테이너가 있을 때 주의해야 한다는 것이다. 상황(예시)widget 객체를 동적으로 여러개 선언하고 이를 관리하는 v라는 widget 포인터 백터가 있다고 가정한다. 12345678910111213clss Widget{public: ... bool isCertified() const; ...}; vector v; ...v.push_back(new Widget);...cs widget 객체 중에 certified 되지 않은 위젯을 지우고 싶다! 12v.erase(remove_if(v.begin(), v.end(), not1(mem_fun(&Widget::isCertified))), v.end());cs not1과 mem_fun 함수들을 사용해 본 적은 없는데.. 대충 아닐때..
2016.02.29 -
[effective STL] 항목 32 : 요소 정말로 제거하기
정말 중요한 핵심remove는 어느 것도 "진짜로" 없애지 않는다. 없앨 수 없기 때문이다.책에서 이 문장을 아주 중요하게 두 번이나 반복하고 있다. 님아.. 근데 list는 지워지긴 하잖아욤.... 이건 멤버 함수라 이건가? https://github.com/ElementalKiss/Cpp/blob/master/Example/RealEraseElementInContainerUsingRemoveAndErase.cpp 예시우리가 자주 사용하는 vector를 예로 들면, 1234567 vector intVec; const int VEC_SIZE = 10; intVec.reserve(VEC_SIZE); for (int i = 0; i 00114444??(remove : 2가 삭제되지 컨테이너가 정말 삭제되진 ..
2016.02.28 -
[effective STL] 항목 31 : 정렬시 선택 사항들을 제대로 파악
정리- vector, string, deque, c++ array에 대해 전체 정렬을 수행할 필요가 있을 때는 sort나 stable_sort를 사용한다.- 상위 n개의 요소만 순서에 맞추려면 partial_sort를 사용한다.- 상위 n개의 요소를 뽑되 순서를 고려할 필요가 없다면 nth_element가 적합하다.- 표준 시퀀스 컨테이너가 있고, 이 컨테이너의 요소들을 어떤 기준에 만족하는 것들과그렇지 않은 것들을 모아 구분하고 싶다면 partition이나 stable_partition을 고려해본다.- 사용하고 있는 데이터가 list인 경우엔 partition과 stable_partiton은 직접 사용할 수 있으며sort와 stable_sort 알고리즘 대신에 list:sort 멤버 함수를 사용할 수 ..
2016.02.27 -
[CMD] 날짜, 시간 변수 사용하기
1234567891011D:\Users\Elkiss>echo %time-:=%%time-:=% D:\Users\Elkiss>echo %date%2016-02-22 D:\Users\Elkiss>echo %date:-=%20160222 D:\Users\Elkiss>echo %time%23:37:19.82cs 뭐 이정도! 다양한 기능이 있지만 생략하는 것으로. 매일 정기적으로 돌아가는 배치파일이 있는데 그 배치에 대한 로그를 남기고 싶었다. 1D:\Users\Elkiss>someBat.bat > %date%_somebat.logcs 이런 느낌으로! so simple!
2016.02.22 -
[windows] Hyper-V 관리자 설치 및 기능 켜기
windows 7과 8 이후로 나뉘는데 7은 설치해야할 것이 있고 8 이후는 기본적으로 설치되어 있다.windows 7 - 원격 서버 관리 도구 설치 -> windows 기능 켜기windows 8 이후 - windows 기능 켜기 원격 서버 관리 도구 설치 https://www.microsoft.com/ko-kr/download/confirmation.aspx?id=7887 이 사이트에 들어가서 다운을 받고 설치 하면 된다. Windows6.1-KB958830-x64-RefreshPkg.msu 간단히 동의만 하면 된다. windows 기능 켜기windows 7 시작 -> "windows 기능" 입력 -> windows 기능 사용/사용 안함 클릭 ->탭에서 원격 서버 관리 도구 확장 -> 역할 관리 도구 ..
2016.02.22 -
[effective STL] 항목 30 : 알고리즘의 데이터 기록 범위는 충분히 크게 잡자.
핵심알고리즘을 쓰기 전에 내부 동작 구조를 알고 컨테이너를 결정해주고,재할당이 최대한 일어나지 않게 범위를 잘 잡아야 한다. 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869#include #include #include #include #include #include using namespace std; int transmogrify(int x) { return x*x; } template void printVector(T SomeContainer, string str) { cout
2016.02.20