| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 | 31 |
- STL
- 네트워크 기초
- 백준
- Gas
- 코드리뷰
- Toon Shading
- c++ 베이직
- 폭설 #미친 날씨
- 브론즈
- 언리얼
- Harvard
- C++
- 원카페#무인카페#카페추천#카페맛집
- leetcode
- 헤더 경로
- UE_5
- build.cs
- topdownmove
- 언리얼 엔진5 #언리얼 클라이언트 프로그래밍
- 메테리얼
- 오늘밤 세계에서 이 사랑이 사라진다 해도 #독후감 #오열
- Console
- CS
- 언리얼엔진5 #언리얼 클라이언트 프로그래밍
- CS50
- 순환 리스트
- Module
- Unreal
- A* Algorithm
- 툰쉐이딩
- Today
- Total
목록전체 글 (113)
WN_인생기록
직렬화 : 오브젝트나 연결된 오브젝트의 묶음을 바이트 스트림으로 변환하는 과정- 복잡한 데이터를 일렬로 세우기 때문에 직렬화 라고 함 시리얼라이제이션(직렬화) : 오브젝트 그래프에서 바이트 스트림으로디시리얼라이제이션 : 바이트 스트림에서 오브젝트 그래프로 복구 왜 직렬화가 중요한가프로그램의 상태를 저장하고 필요할 때 복원할 수 있다 (세이브)객체 정보를 클립보드에 복사해서 다른 프로그램에 전송가능네트워크를 통해 다른 컴퓨터에 복원 ( 멀티플레이)데이터 압축, 암호화를 통해서 데이터를 효율적으로 보관 가능 구현할때 고려할 점 1. 데이터 레이아웃 : 오브젝트가 소유한 데이터를 변환할 것인가? (어떻게 직렬화 될 것인가?)2. 이식성 : 다른 시스템에 전송해도 그대로 사용 가능한가?3. 버전관리 : 새로운..
가비지 컬렉션 시스템- 마크 스윕 방식 루트 오브젝트를 참조하는 객체를 마크하고, 주기적으로 마크를 찾음. 저장소에는 마크된 객체와 마크가 안된 객체들이 존재함 가비지 컬렉터가 마크되지 않는 객체들의 메모리를 회수 이러한 시스템으로 가비지 컬렉션이 작동함. (GCCycle) 기본값 60초. 퍼포먼스를 위해서 병렬처리, 클러스터링과 같은 기능을 탑재. 언리얼에서 C++ 단점 커버를 위한 시스템 C++ 메모리 누수 -> 언리얼 가비지 컬렉션 시스템 댕글러 포인터 -> IsValid()를 써서 확인 가능 와일드 포인터 -> UPROPERTY 쓰면 자동으로 nullptr로 초기화 됨.
키, 밸류로 구성되어 있음. TSet의 구조로 구현되어 있음. 해시 테이블 형태라서 빠른 검색이 됨. TPair 로 구성되어 있음. 중복을 허용하지 않지만 TMultiMap은 중복을 허용함. 반복문을 통해서 값을 가져올때는 iterator로 가져오기 때문에 .key , .value 등으로 값을 가져올수 있다. 데이터를 찾을려면 Find 키워드를 사용해서 찾아주면 가장효율적이다. 끝부분의 빈 공간을 줄이고 싶으면 Shrink 기능을 통해서 줄일 수도 있다. STL의 Map 과는 다름. STL Map은 이진 트리로 구성되어있음. 해시 테이블에서 키, 밸류 값이 필요한 데이터형이 필요하다면 TMap을 쓰면 된다.
https://www.acmicpc.net/problem/2231 #include using namespace std;// 분해합 과정이 복잡할거 같아서 함수로 따로 설정int Sum(int num){ int sum = num; while (num > 0) { // 자릿수 나머지 값 sum += num % 10; // 자릿수 빼기 num /= 10; } return sum;}int main(){ int N; cin >> N; // 없으면 0 출력해야해서 0부터 시작 int result = 0; // 각 자리수의 가장 큰 숫자9에, 가장 큰 자릿수 1,000,000 의 6 을 곱한 값으로 시작값 구하기 int start = N - 54; // 시작값으로부터 입력값 까지 돌면서, 가..
https://www.acmicpc.net/problem/2869 //while (height using namespace std;int main(){ int a, b, v; cin >> a >> b >> v; // 목표하는 높이 int targetheight = v - a; // 하루에 올라가는 높이 int dailyclimb = a - b; // 나머지가 생기면 하루가 더 추가 int days =1 + targetheight / dailyclimb + (targetheight % dailyclimb != 0 ? 1 : 0); cout 생각나는대로 처음에는 푼 방법이 있으나, 시간초과가 뜨게 되어서 다르게 생각하게 되었다. 목표하는 높이와, 하루 올라가는 높이를 구하고, 계산했을때 나머지가 ..
https://docs.unrealengine.com/4.27/ko/ProgrammingAndScripting/ProgrammingWithCPP/UnrealArchitecture/TSet/ TSetTSet, 세트는 보통 순서가 중요치 않은 상황에서 고유 엘리먼트를 저장하는 데 사용되는 고속 컨테이너 클래스입니다.docs.unrealengine.com Set은 중복없는 데이터를 담을 때 주로 많이 쓰이는데 Unreal 에서는 해시 테이블 형태로 키, 데이터로 구축되어 있고(Dynamic Array 에서 배열이 중간중간 비어있다고(해시 테이블이라서) 생각하면 됨) C++ STL set은 이진 트리로 구성되어 있음. 구조가 다름. TSet은 독립된 키로 데이터값을 연결하는게 아니라 데이터 값 자체를 키로 사..
https://docs.unrealengine.com/4.27/ko/ProgrammingAndScripting/ProgrammingWithCPP/UnrealArchitecture/TArrays/ TArray: 언리얼 엔진의 배열 docs.unrealengine.com Dynamic Array인 자료구조이며, c++ STL의 vector와 유사함. 중간에 데이터를 추가하는것만 아니면, 탐색이 빠른 자료구조. 데이터가 커지면 탐색이 느려지긴 함. 함수 기능 Emplace 를 통해서 배열 끝에 삽입 가능. AddUnique 는 기존 컨테이너에 원소가 존재하지 않는 경우에만 추가StrArr.AddUnique(TEXT("!"));// StrArr == ["Hello","World","of","Tomorrow..