Category: Programming

python – remove in for (iterator termination)

위와 같은 코드는 실제로 정상적인 의도대로 사용할수 없다이는 c++ 의 vector 에서의 iterator 로 for문을 loop 도는중 erase 할때와 같은 경우라고 이해할 수 있는데iterator terrmination 상태가 되어 버린다 다시 말하면 loop 를 도는 근간을 흔들어 버리는 행위를 루프를 도는중에 한다 라고 이해 하면 되지 않을까 싶다 python 의 경우 위의 코드에서 [:]를 붙여주게 되면 실제 […]

stl 컨테이너 선택 기준

vector 랜덤 access 현재 할당 사이즈를 넘을 경우 마다 복사 비용 발생 중간 element 의 삭제,추가 시 비용 발생 reserve 사용 을 고려 iterator 가 삽입,삭제 중 정상유지 될수 없어 for 문 사용시 iterator 사용때 주의 list 연결리스트 삽입 굳이 중간에 넣어야 한다면 vector 보다 낫다 조회 vector 가 낫다 iterator 컨테이너의 삽입 삭제 동작 […]

c++(and another) compiler on website

gcc 버전별 컴파일 가능한 modern c++ feature 확인하기 곧 바뀔 현실이지만 실제 현업에서 많이 장애물이기도 하면서 현재도 많이 남아 있는 centos 에 대한 이슈로 gcc 빌드가 몇몇 회사의 몇몇 솔루션의 경우 c++ 11 의 feature 조차 제대로 사용할 수 없는 (하지만 일부는 또 사용가능한) 케이스가 많다 그때 그때 확인하거나 알고 싶을 때 유용한 사이트가 있다 […]

개인적인 코드 철학

변수, 함수 명을 고민하고 누구나 이해할 수 있는 명사, 동사로 두어 의미도 유추할 수 있도록 한다 다른 사람이 읽기 쉬운 코드를 만든다 하나의 기능을 하는 하나의 기능에 확실한 단위 함수로 구현한다 기술을 써서 코드 가독성을 해치지 않는다 메타 프로그래밍 : 필요한 곳에서 최소한 – 코드를 읽기 힘들어짐 보통 컨테이너 구현에는 최적의 활용도 내 코드를 다른 […]

rust 설치 와 hello, world! (windows)

rust 설치 방법중 아주 윈도우 친화적인 방법 https://www.rust-lang.org/learn/get-started내용을 보면 대충 어쩌고 저쩌고 visual studio c++ build tools 가 있어야된단다이미 현재 visual studio 2019 가 설치된 상태라 패스자세한 각 플랫폼 and 방법 별 rust 설치는 나중에 정리해두기로 한다 https://static.rust-lang.org/rustup/dist/x86_64-pc-windows-msvc/rustup-init.exe설치 파일을 받아 설치하면 이런 화면이 뜬다 1 일반 설치 진행 파일을 만든다확장자는 .rs– 로 보통 만드는데 테스트 […]

std::function (modern c++)

실제로 사용해보진 않았지만 기회가 되면 사용하게 될/ 하고 싶은 feature 라서 정리해둔다 일반 c 언어의 함수포인터 역활을 하는 c++11 이후 추가된 feature c++ 의 () 를 붙여 호출 가능한 모든 Callable 을 대입하거나 인스턴스로 활용할 수 있다기존의 함수 포인터는 람다, Functor(class function), 함수포인터를 모두 처리할 수 없었다 예제는 나중에… 관련 함수 :std::mem_fnstd::bindstd::placeholder

std::vector::emplace_back (modern c++)

list,deque,vector 에 사용가능한 멤버 함수 c++11 에 처음 추가 되었으며 가변인자 템플릿을 인자로 받는다인자로는 vector 의 instance / class 인 경우 생성자를 넣어 주어야 한다emplace_back 의 경우 일반 push_back 과 다르게 vector 로 복사되는 흐름이 아닌vector 에 element 가 생기는 동시에 초기값을 넣어주게되어 복사가 일어나거나 임시객체가 생성되지 않아 좀더 빠른 코드 c++17 이후의 return value […]

C++ 최적화 : 커트 건서로스 (옥찬호)

당연하지만 당연하지 않았던 C++ 최적화에 대해 다룬 책을 읽어보기 시작한다 이런 책의 경우 하나하나의 내용들이 주요하고 기록, 요약 해두는게 의미있다고 생각되 두서 없이 그때 그때 기분에따라 블로그에 기록 해 두려 한다 1. 최적화란 1.5.1 더 좋은 컴파일러를 더 잘 사용하세요 1.5.2 더 좋은 알고리즘을 사용하세요 1.5.3 더 좋은 라이브러리를 사용하세요 1.5.4 메모리 할당과 복사 줄이기 […]