C++

· C++
이전 포스팅에서 C++의 value category(https://m42-orion.tistory.com/67)에 대해 알아보았다. 짧게 정리를 해보자. C++ 11 이후의 value category를 구분하는 기준에는 identity와 move 두 가지가 있다. identity는 두 객체(entity)의 주소(address)를 비교하여 두 객체가 같은지 확인할 수 있는지를 나타낸다. move는 어떤 값이 다른 값으로 이동될 수 있음을 이야기한다. 구분 기준에 따라서 Mixed category(복합 카테고리)와 Primary category(기본 카테고리)로 나눌 수 있다. 먼저 Mixed category는 gl-value(i)과 r-value(m)로 나눌 수 있으며, Primary category는 x..
· C++
이 게시글은 계속 업데이트되고 있습니다. [최신 업데이트 12/18 ] ⭐️C++의 value category C++의 표현식(expression)들은 type과 value category라는 두 개의 독립적인 속성(property)을 통해 특징 지을 수 있다. C++ 11이 나오기전, C++ 03까지는 l-value와 r-value를 각각 assign operator(operator =)의 왼쪽에 올 수 있는 값, 오른쪽에 올 수 있는 값으로 정의 내렸었다. 이후 C++ 표준 개정안이 변경되면서 C++ 11부터는 value category에 x-value, gl-value, pr-value가 추가되었다. value category는 두 가지의 기준 identity과 move를 통해 밑의 표와 같이 구분..
· C++
⭐️Pointer types, void pointers 1. Pointer types - Strongly type 1) Pointer는 strongly type(강형 타입)입니다. int형 변수의 주소를 저장하고 싶다면, int* - 정수형 포인터 변수를 선언하여 저장해야 합니다. 2) Why do we need these strong types? 포인터는 주소를 저장하는 변수이므로 하나의 type. 즉, generic type으로 사용하면 되지 않을까? 3) 2번에 대한 Answer pointer 변수를 그저 주소를 저장하는데에만 쓰지 않고, 주소를 de-referencing하여 변수의 값을 access & modify하기 때문에 strongly type입니다. 자료형마다 사용하는 메모리의 양이 다르고..
· C++
[서론입니다 중요한 내용이 아니니 넘어가도 좋습니다 ㅎㅎ;] 더보기 대학교에서 들었던 첫 프로그래밍 강의는 C언어였습니다. 당시 프로그래밍 자체에 대해서 아는 것이 없는 소위 말하는 노베이스였기 때문에 이해에 시간이 오래걸렸던 기억이 납니다. 그 중 제일 힘들었던 것은 바로 Pointer과 동적 할당 부분이었는데, 이 때에는 수박 겉핥기 식으로만 알고 넘어갔습니다. 지금은 휴학을 하고 C++을 공부하고 있는 상황인데, C와 비슷한 부분이 많다보니 Pointer에 대해서 제대로 알고싶은 마음이 들었고, 공부를 조금씩 하기 시작했습니다. 하지만 ㅎ;; 역시나 Pointer의 벽에 부딫혀버렸고, &와 *를 어떤 식으로 써야하는지, 왜 메모리 누수가 일어나는지, 매개변수를 전달할 때에는 어떻게 해야 할지 헷갈려..
· C++
💡 map의 주요 인터페이스와 특징 1. 연관 컨테이너 중 자주 사용하는 컨테이너 2. 원소를 key와 value의 쌍(pair 객체)으로 저장 3. key는 해당 컨테이너에서 유일 (즉, 중복 key 허용 X) 4. 기본 정렬 방법은 less이며, key를 기준으로 정렬 5. set과 같은 인터페이스 멤버 함수를 제공하며 거의 유사 6. [] 연산자를 이용하여 key 값에 해당하는 value에 접근 -> 삽입 or 수정이 가능 7. insert()는 pair 객체를 인자로 받아 컨테이너에 저장 💡 생성자 1. 기본적인 방법 // pair객체의 first:key second:value map m; 기본 정렬 기준은 less로 설정되어 있어 세 번째인자로 정렬 기준을 따로 넣지 않는다면 정렬기준은 less..
· C++
💡 vector의 주요 인터페이스와 특징 vector 컨테이너는 대표적인 시퀀스 컨테이너로 배열과 비슷한 양상을 띄고 있습니다. 알고리즘 문제를 풀 때에 많이 사용되는 컨테이너 중 하나 입니다. 또한 vector는 시퀀스 컨테이너이기 때문에 원소의 저장 위치(순서)가 정해지며, 배열 기반 컨테이너이므로 원소가 하나의 메모리 블록에 할당됩니다. 시퀀스 컨테이너는 원소를 차례차례 추가하는 push_back()과 제거하는 pop_back() 연산과 첫 원소를 참조하는 front()와 마지막 원소를 참조하는 back() 연산 지정한 위치에 원소를 삽입할 수 있는 insert() 연산을 가집니다. vector의 경우 앞쪽이 막혀있는 형태이기 때문에 앞 쪽에서 원소를 추가/제거를 할 수 없으며, 뒷 쪽에서만 원소를..
orion_x
'C++' 카테고리의 글 목록