
C++ 소스코드가 executable file(ELF)이 되기 까지 어떤 과정이 필요할까요?일반적으로 소스코드를 컴파일 하는 과정은 다음과 같습니다.g++컴파일러를 이용하여 소스코드를 바로 바이너리 파일로 만들었습니다. file 명령어를 이용하여 ./a.out파일을 확
어떤 vector에서 특정 값을 갖는 원소들을 제거하고 싶을 때 어떻게 코드를 작성하면 될까? 쉽게 생각하면 O(n2)의 방법을 떠올릴 수 있을 것이다. 하지만 O(n)으로 이것을 가능하게 할 수 있다. 이 방법을 erase-remove idiom이라고 한다. 아래 코
cpppreference에서 std::find_if 구현을 보면 다음과 같다.3번째 인수 p로 람다나 함수객체를 받고 있다. iter first로 순회를 하다가 p에 어떤 값을 넣었을 때 참이면 iter first를 반환하고, 한번도 참이 나오지 않으면 iter las
p가 false를 반환할 때 그 값을 first가 가리키고 있는 값으로 옮기는 것을 알 수 있다. 따라서 p가 true이도록 하는 값이 삭제됨을 알 수 있다. 이 말이 이해가 되지 않으면 여기서 std::remove에 대한 부분을 참고하기 바란다. remove_if함수
선언으로 해석할 수 있는 것은 항상 선언으로 해석해야 한다는 C++ 규칙에서 비롯된 하나의 부작용이다. (Effective Modern C++ 참조)즉 위 코드는 Cat의 객체를 생성하는 것으로 해석되지 않고 Cat 객체를 반환하는 cat함수를 선언하는 것으로 해석이