일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- new&delete
- increment operator
- std::vector
- member function pointer
- vector capacity
- base from member
- virtual function table
- virtual inheritance
- 더 지니어스 양면포커
- std::cout
- this call
- placement new
- c++ basic practice
- dynamic_cast
- c++ multi chatting room
- pointer to member data
- C++
- constructor
- discord bot
- return by reference
- conversion constructor
- virtual function
- virtual destructor
- operator overloading
- vector size
- diamond inheritance
- delete function
- std::ostream
- std::endl
- suffix return type
- Today
- Total
목록전체 글 (75)
I'm FanJae.
1. vector capacity vs size#include #include void check(const std::vector& v) { std::cout size 이므로 // 빠르게 동작 check(v); // c : 5 s : 4 v.shrink_to_fit(); check(v); // c : 4 s : 4 v.push_back(0); // capacity == size 이므로 메모리 재할당 필요 // 느리다. check(v); // c : ? s : 5 v.clear(); // 메모리를 제거하지는 않음. // size 만 0으로 check(v); v.resize(0); // 또는 v.clear() v.shrink_to_fit(); check(v);}- v..
본 포스트는 코드누리 C++ Basic 강의 내용을 보고 정리한 포스트입니다. - Basic에서는 STL에서 가장 기본이 되는 얘기만 다뤄진다.- 이후 별도 STL 카테고리에서 STL에 대해서 조금 더 다양한 얘기를 할 것이다.- 여기서는 C++ 개발자가 알아야하는 핵심 내용이나 사용법 위주로 다룬다. 1. STL의 역사- 1983년 처음 발표되고, C++ 1차 표준 (C++98) 발표 및 자료 구조와 알고리즘 위주의 라이브러리가 추가되었다.- 이후 C++11 / 14 / 17에 thread, smart pointer, chrono, file 등이 추가된다.- C++ 20에는 Range, Concept 등의 라이브러리가 추가된다.- C++ 23 / 26에서 generator, excepted, Netwo..
1. 프로그램의 실행파일의 생성 과정- 일반적으로 CPU를 디자인 하는 개발자는 명령어 체계도 디자인한다.- 0011, 0010, 0100, 0101 등과 같이 명령어를 구성한 이후, 이 명령어에 각각의 이름을 넣어준다.- ADD, MIN, MUL 등과 같이 말이다.- 이러한 방식의 프로그래밍이 어셈블리 프로그래밍이다. ① 전처리기에 의한 치환작업- C,C++에서 #으로 시작하는 지시자- #include, #define 등 ② 컴파일러에 의한 번역- 단계 1에서 전처리 작업이 일어나도 여전히 C언어로 구성되어 있다.- 보통 많은 컴파일러가 중간 코드에서 어셈블리 코드를 생성한다. ③ 어셈블러에 의한 바이너리 코드 생성- 어셈블러가 이러한 어셈블리 코드를 받아서 바이너리 코드(기계어 코드)로 변환한다.- ..
※ 본 포스트는 코드누리 C++ Basic 강의 내용을 보고 정리한 포스트입니다. 1. -> 연산자 재정의를 통한 Smart Pointer#include class Car{ int color;public: ~Car() { std::cout () { return obj;} Car& operator*() { return *obj;}};int main(){ Ptr p ( new Car ) ; // p는 객체, 타입 Ptr // Ptr의 객체 p가 Car* 역활을 수행 p->go(); // p.operator->()go() // (p.operator->())->go() (*p).go();}- 이 예제를 보면,..
※ 본 포스트는 코드누리 C++ Basic 강의 내용을 보고 정리한 포스트입니다. 1. std::cout의 원리#include int main(){ std::cout 1-1. std::cout의 원리- std::ostream 타입의 객체이다.- operator연산자 재정의 기술을 사용하여 재정의 한 것이다.#include /*namespace std{ class ostream { }; ostream cout;}*/int main(){ std::cout - 즉, 실제로는 std namespace안에 ostream이라는 class가 존재한다는 것이다.- 또한 std::cout은 std::cout.operator ※ 정확히 말하면, basic_ostream 이..