MoonBug

고정 헤더 영역

글 제목

메뉴 레이어

MoonBug

메뉴 리스트

  • 홈
  • 태그
  • 방명록
  • 분류 전체보기
    • Portfolio
      • Toy Project
      • 쥐돌이볼링
    • Trip
    • Cooking
    • Game
    • Diary
      • 잡생각
    • C++
      • Baekjoon
      • Programmers
      • 개념공부
      • STL
    • Study
      • Linux
      • Graphics
      • UNREAL
      • Computer Network
      • 강화학습
      • Algorithm
      • OS

검색 레이어

MoonBug

검색 영역

컨텐츠 검색

C++/개념공부

  • Deque(및 Queue, stack)의 메모리 관점에서 구현 방식

    2024.02.07 by J2on

  • C++ Smart Pointer에 대하여

    2024.02.07 by J2on

  • C++ Lvalue와 Rvalue

    2024.02.07 by J2on

  • C++ 삼항연산자 ( a > b ? 1 : 2 )

    2024.02.07 by J2on

  • Constant Expression : constexpr 키워드에 대하여 (하드코딩, 메모리 관리)

    2023.08.23 by J2on

Deque(및 Queue, stack)의 메모리 관점에서 구현 방식

dequeue deque는 양 쪽에서 push와 pull이 가능한 자료구조 이다. list는 linked list형태로 제작되었고, vector는 연속된 메모리 공간에 존재한다. 그럼 deque는? → 둘 다 좀 다름 deque의 경우 각 object를 가리키는 pointer들의 연속된 집합으로 이루어짐. value 값은 다른 공간에 저장을 해두고, 그 공간을 가리키는 pointer만 연속적으로 저장 장점 Random Access도 가능함 연속적인 공간의 크기가 작아도 됨 Pointer의 작은 크기 덕에 다른 자료형을 연속적으로 저장하는 것보다 작음 vector는 크기가 커질 때, 다른 공간에 복사하는 작업이 필요 → deque는 이런 작업이 적게 일어남. 단점 Random Access시에 한 단계 더 ..

C++/개념공부 2024. 2. 7. 19:31

C++ Smart Pointer에 대하여

C++의 큰 특징 중 하나 Pointer를 이용한 직접적인 메모리 관리가 가능하다. 하지만, 프로그래머가 직접 관리하다보니 메모리 누수가 발생할 수 있다. 이를 위해 Smart Pointer를 사용한다. Smart Pointer는 일반 Pointer를 wrapping하는 형태로 구성된다. Smart Pointer의 종류 1. unique_ptr (Unique Pointer) 어떠한 object가 오직 한 개의 참조만이 가능할 때, 새로운 참조가 생기면 기존 pointing을 끊어버리는 것. #include #include class MyClass { public: MyClass() { std::cout

C++/개념공부 2024. 2. 7. 18:17

C++ Lvalue와 Rvalue

제가 이해한 것으로 작성하는 글이라 틀린부분이 있을 수 있습니다. 혹시 잘못된 부분이 있다면 알려주세요. lvalue와 rvalue를 이해하기 전에 먼저 glvalue와 prvalue, xvalue에 대해 알아야 한다. glvalue (Generalized Lvalue) glvalue는 평가에서 개체, 비트 필드 또는 함수의 ID를 결정하는 식입니다. 라는 microsoft의 설명 쉽게 말해 glvalue는 메모리 주소를 나타내는 표현식이다. 그리고 glvalue에는 lvalue와 xvalue가 속한다. prvalue (Pure Rvalue) prvalue는 연산자의 피연산산자 값을 계산하는 식, 주로 함수 호출 반환 값 or 상수 a = 3 주소 rvalue -> 값 & 주소 이렇게 저장할 수 있다는 ..

C++/개념공부 2024. 2. 7. 17:25

C++ 삼항연산자 ( a > b ? 1 : 2 )

삼항연산자는 C와 C++에서만 존재하는 독특한 연산자 a > b ? 1 : 2 위 식에서는 a와 b를 비교하고 true라면 1을, false라면 2를 return한다. 즉 조건문 ? true일때 값 : false일 때 값 이렇게 활용되는 것이다. 이러한 삼항연산자는 lvalue로써도 사용할 수 있다. ((i < 3) ? i : j) = 7; 이 경우 i가 3보다 작은 경우에 i에 7을 저장하고, 그렇지 않다면 j에 7을 저장한다. 참고 : https://tcpschool.com/cpp/cpp_operator_etc 코딩교육 티씨피스쿨 4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등 tcpschool.com

C++/개념공부 2024. 2. 7. 16:55

Constant Expression : constexpr 키워드에 대하여 (하드코딩, 메모리 관리)

요 며칠간 고민했던 것은 하드코딩 VS 멤버변수 선언 이었다. 풀어 이야기해보면 하드코딩을 지양하기 위해 멤버변수 하나를 선언하는 것이 과연 옳은 습관일까에 대하여 고민했다. 코드의 가독성을 위해 멤버변수 하나 정도의 메모리 공간은 괜찮지 않을까 생각했지만, 이런 Local Variable들이 모이면 유의미한 차이가 생길 것 같았다. 이 부분에 대해 구글링과 GPT를 이용해보았지만 후련한 답은 얻지 못했다. 그리고 오늘 친한 형에게 constexpr에 대해 알게 되었다. constexpr은 컴파일 단계에서 변수를 상수로 대체한다. 변수로써 선언했지만, 컴파일 단계에서 상수로 대체되어 마치 하드코딩을 한 것처럼 어셈블리 단계에 들어선다. 때문에 프로그램 실행 중에는 메모리를 차지하지 않게 되는 것이다. 이..

C++/개념공부 2023. 8. 23. 02:36

추가 정보

인기글

최신글

페이징

이전
1
다음
TISTORY
MoonBug © Magazine Lab
페이스북 트위터 인스타그램 유투브 메일

티스토리툴바