알고리즘 특강(라이브 세션), C++ 문법 2-3 강, C++ 문법 2-4 강, 라이브 복습 세션
===========
알고리즘 특강
복기는 중요하다
countCharacters(string name) {
return
}
컨테이너 / 반복자(iterator) / 알고리즘
unordered_map
if(charCount.find(currentChar) != charCount.end()) { ... }
전위/후위에(연산자 위치) 차이가 있긴 한데 컴파일러가 최적화를 해준다.


====================
C++ 문법 2-3 강
vec.erase(a,b) - a<= x< b / a이상 b미만의 값을 지움
맵
키-값 쌍을 가지는 컨테이너
기본적으로 오름차순 정렬을 하고 필요없다면 unordered_map으로 사용하면 된다.
myMap.insert(make_pair(1, "Apple")); - myMap(1, Apple) 을 추가
myMap.insert({4, "Dog"}); - 중괄호{}를 사용해서 좀 더 간소화가 가능하다.
myMap[7] = "Giraffe"; - 이렇게 배열처럼 추가도 가능하다.
myMap.find(key)
size - 키-값 의 개수를 반환(크기)
erase(key) - 키에 해당하는 값을 삭제하는 함수
clear - 맵을 전부 비우는 함수
sort / find
begin() / end() - 순방향 반복자
end() - 는 컨테이너의 마지막 원소 다음을 가리킨다.
rbegin() / rend() - 역방향 반복자
=====================
C++문법 2-4 강
응집도
클래스 또는 모듈 내부의 구성 요소들이 얼마나 밀접하게 관련되어 있는 지를 나타낸다.
높을수록 좋다.
피자 배달 예시
피자 배달/웹사이트 디자인/회사 마케팅/창고 관리 // 피자 배달 경로 확인/주문한 고객 대응/배달 예상 시간 측정
결합도
결합도가 높을수록 기능을 추가하거나 중간 수정이 어려워진다.
인터페이스(추상 클래스) ->순수 가상 함수가 있는 클래스
solid
단일 책임 원칙(SRP)
개방 폐쇄 원칙(OCP) -**
확장에는 열려있어야 하고 수정에는 닫혀있어야 한다. (세부 사항은 조금씩 달라도 큰 틀은 이것을 따른다.)
리스 코프 치환 원칙(LSP)
파생 클래스는 기본 클래스에서 기대되는 행동을 보장해야 한다.
인터페이스 분리 원칙(ISP)
클라이언트는 자신이 사용하지 않는 메서드에 의존하지 않아야 한다는 원칙
의존 역전 원칙(DIP)
고 수준 모듈은 저 수준 모듈에 직접 의존하는 것이 아니라, 두 모듈 모두 추상화에 의존해야 한다.
==========
라이브 복습 세션
insert - 삽입
emplace - 생성하면서 삽입 -실무에서 선호 된다.
try - catch-실행 전 가능여부를 판단한다. / 범위에서 벗어나면 catch를 실행한다.
주석 사이에 공간을 늘려서 쪼개서 본 다음 필요 구간만 실행해 보는 것으로 코드에 익숙해지면 전체를 보기 좋아진다.
TMap / std::map
엔진 친화적인 헤시 컨테이너 / 정렬된 트리 컨테이너
Serialization - 직렬화 - 저장이나
Get_type_hash
=====
컨테이너들의 형태에 익숙해질 필요가 있다.
.
'TIL' 카테고리의 다른 글
| 25.12.22일자 - TIL (0) | 2025.12.22 |
|---|---|
| 25.12.19일자 - TIL (0) | 2025.12.19 |
| 25.12.17일자 - TIL (0) | 2025.12.17 |
| 25.12.16일자 - TIL (0) | 2025.12.16 |
| 25.12.15일자 - TIL (0) | 2025.12.15 |