profile
벽에 붙은 달팽이 ↑i@

unordered_set<Key>, unordered_map<Key, Value>

C++ STL에서 제공하는 해시 테이블키만 저장 가능키와 값 저장 가능

2022년 4월 25일
·
0개의 댓글

stack, queue, priority_queue

deque로 만들어진다. (덱은 저장 공간을 재할당할 때 벡터처럼 전체원소를 이동하지 않아도 된다.)empty()size()top() : back()으로 구현push() : 기본 컨테이너의 push_back()으로 구현pop() : pop_back()으로 구현empla

2022년 3월 20일
·
0개의 댓글

sstream

is

2022년 2월 13일
·
0개의 댓글

Rvalue reference

Lvalue는 scope 내에서 다시 사용 가능한 값 int& Lval=4; //불가능 Rvalue는 식이 끝나면 사라지는 값 && int&& rval=5; //가능원본은 더 쓰지 않겠다는 뜻 내포(객체나 변수 등을 전달할 시)이동 생성자, 이동 대입 연산자객체를 &

2021년 12월 27일
·
0개의 댓글

enum class, deleted function

이름공간 관리enum은 사용하면 해당 스코프에서 그냥 접근이 가능하다. 그래서 enum에서 지정한 이름을 사용할 수 없다. 그러나 enum class는 범위 한정자(::)를 사용하여 접근해야 한다(이름 충돌 방지). 같은 이름을 다른 곳에서 쓸 수 있다. 암묵적인 변

2021년 12월 20일
·
0개의 댓글

using

usingtypedef 대신 쓸 수 있다.코드가 길어질 때 사용(auto 처럼)설계단계에서 타입이 아직 확정되지 않았을 때typedef와 다른점using id2 =int;typedef int id;직관성이 좋다.typedef void (myFunc)using MyFun

2021년 12월 12일
·
0개의 댓글

nullptr

nullptr의 값을 실질적으로 0이다.NULL 도 0이다0도 0이다그럼 무슨 차이가 있을까Test(0)Test(NULL)윗 버전 호출test(nullptr)아래 버전 호출오동작 방지가독성nullptr_t 객체에 가깝다.

2021년 12월 12일
·
0개의 댓글

list initialization, {} 초기화

중괄호로 초기화하는 것{}중괄호 초기화를 이용해vector&lt;int> v3{1,2,3,4}가능축소 변환 방지int x=0;double y{x}; //불가능축소변환: 가능한 값의 일부를 저장하지 못할 수도 있는 데이터 형식으로 값을 변경하는 것확대 변환: 원래 데이터

2021년 12월 9일
·
0개의 댓글

auto

컴파일 단계에서 자동으로 타입을 정한다.타입 연역,추론 type deduction, inference함수의 반환 값으로 초기화 가능, 단 선언할 때 초기화 해야한다.auto a=Add(1,3);함수의 매개 변수에는 사용할 수 없다.함수 반환값에는 사용 가능하다.쉽게 타

2021년 12월 8일
·
0개의 댓글

forward_list, list, deque

연결리스트노드로 구현front 첫번째 원소back 마지막 원소size 크기capacity는 없다. vector와 다르게\[] 임의 접근도 없다. 노드에서 포인터로 다음 노드 가리키니까begin 맨 앞의 원소를 가리키는 iterator 반환end 맨 뒤의 원소의 다음을

2021년 12월 3일
·
0개의 댓글

vector, iterator

standard template library프로그래밍할 때 필요한 자료구조 알고리즘들을 템플릿으로 제공하는 라이브러리컨테이너: 데이터를 저장하는 객체(자료구조)여유분을 두고 메모리를 할당한다.여유분이 꽉 차면 메모리를 증설한다.(컴파일러에 따라 다름. 50%) 기존

2021년 11월 30일
·
0개의 댓글

템플릿

템플릿을 사용하면 어떤 기능을 하는 함수를 다양한 시그니처(반환형, 매개변수)로 만들 수 있다.클래스를 대상으로도 적용할 수 있다.템플릿을 통해 특정 타입에 대한 함수를 정의할 수 있다.기본값을 설정할 수 있다.인자로 전달되는 함수어떤 이벤트로 인해 호출되는 함수

2021년 11월 28일
·
0개의 댓글

함수 포인터, 펑터, 콜백 함수

관리와 확장에 편리하다.함수를 매개변수로 전달할 수 있다.(동작 전달)함수 포인터는 동일한 시그니처의 함수만 가리킬 수 있지만 펑터는 ()연산자 오버로딩을 통해 다양한 함수 구현이 가능하다.

2021년 11월 27일
·
0개의 댓글

#include <>, "" 그리고 forward declaration

표준 라이브러리는 &lt;>내가 만든 것은 ""

2021년 11월 24일
·
0개의 댓글
post-thumbnail

얕은 복사, 깊은 복사

디폴트 복사 생성자와 디폴트 대입 연산자를 사용하면(컴파일러가 만듬)상속 받았다면 부모 클래스의 복사 생성자 혹은 대입 연산자멤버 중 객체가 있다면 멤버의 복사 생성자 혹은 대입 연산자를 호출한다.멤버의 값을 그대로 복사하기 때문에 (포인터 같은) 주소 값을 가진 멤버

2021년 11월 23일
·
0개의 댓글
post-thumbnail

타입 변환

타입을 변환을 분류해보자.int 를 float 타입으로 변환할 때2의 보수 형식에서부동소수점 형식으로 변환이 된다.100(0x64)이 저장되어 있지 않다.부동소수점 형식의 100(근삿값)으로 변환되어 저장되어 있다.위 두 방식으로 했을 때는100이 저장되어 있다.안전한

2021년 11월 15일
·
0개의 댓글
post-thumbnail

동적 할당

함수나 연산자로 메모리를 할당할 때 커널에 요청해서 메모리를 받아온다. (OS에서 제공하는 API를 사용)

2021년 11월 14일
·
0개의 댓글

연산자 오버로딩, 정적 멤버

말 그대로 연산자를 오버로딩 하는 것이다.형식은 다음과 같다.연산자 오버로딩은 멤버 함수나 전역 함수로 만들 수 있다.멤버 함수와 전역함수로 동시에 오버로딩이 되어 있으면 멤버함수의 우선순위가 더 높다.만약 private인 멤버변수에 전역 함수로 접근하고 싶다면, fr

2021년 11월 13일
·
0개의 댓글
post-thumbnail

멤버 이니셜라이저(초기화리스트)

CPP에서 클래스의 멤버변수를 초기화하지 않을 경우 문제가 생길 수 있다.위와 같이 쓰레기 값이 나온다. 하지만 이 주소에 중요한 정보가 들어 있었다면 프로그램에 큰 영향을 끼칠 수도 있다.

2021년 11월 12일
·
0개의 댓글

가상함수, 바인딩

가상함수 테이블 객체를 생성하는 코드에 브레이크 포인트를 잡고 객체의 메모리를 보면 첫 번째 주소에 멤버 변수 가 차례로 위치해 있는 것을 볼 수 있다.

2021년 11월 12일
·
0개의 댓글