일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 프로그래머스
- 데이터애셋
- 알고리즘
- UELOG
- 언리얼가비지컬렉터
- 애셋로드
- enumasByue
- 정렬
- 람다
- UE4 커스텀로그
- 람다사용정렬
- C++최적화
- 정렬알고리즘
- map
- unorder_map
- 자료구조
- 델리게이트
- C++
- BFS
- stl
- 약참조
- moreeffectiveC++
- 크리티컬섹션
- 스마트포인터
- UE_LOG
- 강참조
- 언리얼엔진구조체
- UML관련
- dataasset
- 선택정렬
- Today
- Total
목록Note (423)
기억을 위한 기록들
UML 구성요소는 크게 3가지가 있다. 1. 사물 2. 관계 3. 다이어그램 이렇게 3가지가 있고 각각을 설명하자면, 1. 사물 모델에서 가장 추상적인 개념으로 구조를 표현하는 정적 사물, 동작을 표현하는 동적 사물 부가적으로 설명하는 주해 사물이 있다. - 정적 사물 : 모델의 구조 즉 개념적, 물리적 요소를 표현하는 명시. (ex. 클래스, 인터페이스, 통신, 컴포넌트, 패키지, 노드 등) - 동적 사물 : 모델의 동적인 부분을 동사로 표현하며 시간과 공간에 따른 동작을 나타낸다. (ex. 교류, 유스케이스(요구 사항), 상태 머신(state machin) 등.) - 주해 사물: 모델링에 참여하진 않지만, 모델링에 참여하는 다른 사물들뿐 아니라 모델링을 이해하는 데 필요한 정보 등 필요한 모든 설명을..
std::set ? - std::set은 std::map과 동일한 자료구조를 사용하므로, 서능의 특성은 맵과 동일하다. - 차이점 한가지는 검색으로 반환된 항목이 std::set에 있다는 것이다. - key는 있지만 value는 없다 - 중복을 허락하지 않고, 정렬되는 집합 - 용도로 특정 값에 대해 검색을 빠르게 하고 싶을때 사용 std::set 사용법 https://blockdmask.tistory.com/79 [C++] set container 정리 및 사용법 안녕하세요. BlockDMask 입니다 ! 오늘은 연관 컨테이너 set, multiset, map, multimap 중 set에 대해 학습해보겠습니다. 순서는 set container -> set의 사용법 -> set의 생성자와 연산자 -> ..
std::map은? - 순서가 지정된 연관 컨테이너 - 항목을 삭제하는 경우를 제외하고 반복자와 참조가 절대 무효화 되지않는다. - 반복자는 항목을 정렬한 순서나 역순으로 정렬한 순서로 생성 - 노드기반 자료구조. 하지만 키의 값에 따라 노드를 자동으로 정렬 - 내부는 균형 이진트리로 구현 - 트리를 사용하지만 트리는 아니다. - 메모리 관리자와 매우 간단하고 예측 가능한 방법으로 상호작용 - 각 항목에 할당된 저장 공간의 크기는 모두 같음.(메모리 단편화 생길 가능성 낮음) - 검색은 std::vector로 std::lower_bound 사용하는게 더 빠름 사용 방법 : https://blockdmask.tistory.com/87 [C++] map container 정리 및 사용법 안녕하세요. Bloc..
7. 문장 최적화 - 문장 수준에서 최적화할 때, 문장의 비용을 크게 만드는 요인이 없다면 성능이 생각만큼 개선되지 않습니다. - 반복문에서 문장의 비용은 반복된 횟수만큼 커진다. 1. 반복문의 종룟값을 캐싱하기 2. 경우에 따라 for문보다 do while문이 더 효율적일 수도 있다. 3. for에서 값 증가보다 감소가 아주 쪼금 더 빠르다.(일부 컴파일러) 4. 반복문에서 불변 코드는 반복문 밖에서 계산하기 5. 반복문에서 불필요한 함수 호출을 제거하시오. 반복 문안에 있는 함수의 호출을 매번 호출해야 하는지 살펴보자. 6. 반복문에서 숨겨진 함수호출을 제거하시오. 대부분 클래스 타입의 변수다. 생성자 소멸자 대입 등이 일어날 때 숨겨진 함수 들일 호출된다. 7. 반복문에서 비용이 크고 변화가 느린 ..
https://www.hackerrank.com/challenges/repeated-string/problem Repeated String | HackerRank Find and print the number of letter a's in the first n letters of an infinitely large periodic string. www.hackerrank.com long repeatedString( string s, long n ) { long cnt = 0; //반복최대 길이보다 문자열이 더 길때 if( n < s.size() ) { //반복 최대 길이(n)만큼까지에서 a 글자 찾기 for( long i = 0; i < n; i++ ) { if( s[i] == 'a' ) { cnt++;..
1. 최적화란 - 더 좋은 컴파일러 사용, 최적화 설정 사용 당연히 돼있을 수도 있지만 안 돼있을 수도 있다. - 최적의 알고리즘 사용 사소한것부터 큰 것까지 최적의 알고리즘은 다양하다. 이 내용을 알기엔 모든 나의 커리어를 쏟을 만큼 쉽지 않다. - 더 좋은 라이브러리 사용하기 표준 C++ 템플릿 및 런타임 라이브러리는 유지보수 가능해야 하고, 범용적이고 견고해야 한다. 보통 속도를 신경을 쓰지 않기 때문에 잘 확인해 보며 써야 한다. - 메모리 할당 줄이기 메모리 관리자를 호출하는 횟수를 줄이는 방법 하나만 알고 있더라도 성공적으로 최적화를 할 수 있다고 말할 수 있다. - 복사 줄이기 많은 복사가 메모리 할당과 관련해 발생하기 때문에 하나를 고치면 종종 나머지 하나의 문제도 사라진다. - 계산 제거..
FString myStr="10.0"; float myStrValue = FCString::Atof( *myStr.TrimQuotes() ); TrimQuotes() 함수는 문자열 앞뒤에 있는 " " 를 제거해주는 함수이다. 반대로 float을 FString으로 변환하기 float myValue=10.0f; FString myValueStr = FString::SanitizeFloat(myValue);
https://programmers.co.kr/learn/courses/30/lessons/12973 코딩테스트 연습 - 짝지어 제거하기 짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙 programmers.co.kr #include #include #include using namespace std; int solution(string s) { if(s.size() % 2 != 0) return 0; int answer = 0; stack st; for(int i = 0; i < s.size() ; i++) { if(st.empty() || st.top() !=..
예를 들어 3개의 액터가 1초마다 본인의 이름을 출력하도록 설정하였다. 여기서는 132321 순으로 출력되고, 몇초 후엔 321213 순으로 출력되며 미세한 차이로 무작위하게 출력된다. 이런 순서를 맞춰주기에 위 함수를 사용하는데 Tick 실행이 시작되는것에 대한 의존(종속)관계를 설정할 수 있다. 동일 프레임 처리 되지만, 데이터 처리의 순서의존성이 있을 경유 유용하다. 만약 DoSomething 이라는 위젯버튼 클릭시 아래와 같이 해당 액터들을 가져와, Add Tick Prerequisite Actor 함수를 사용하여 의존을 해주게 되면, 1,2, 3 순서대로 종속시켜 순서대로 출력이 된다. 이렇게 되면 맨 위에 있던 함수의 뜻은 자기자신 (Self) Tick이 실행된다음 Mesh Tick(보통 An..
https://www.hackerrank.com/challenges/big-sorting/problem Big Sorting | HackerRank Sort an array of very long numeric strings. www.hackerrank.com #include using namespace std; bool check(string a, string b){ return a.length() == b.length() ? a > b : a.length() > b.length(); } vector bigSorting(vector unsorted) { vector result; sort(unsorted.begin(),unsorted.end(),check); for(int i = unsorted.siz..
헤더파일 UPROPERTY() USphereComponent* Trigger; UFUNCTION() void OnOverlapBegin( class UPrimitiveComponent* selfComp, class AActor* otherActor, UPrimitiveComponent* otherComp, int32 OtherBodyIndex, bool bFromSweep, const FHitResult& SweepResult); cpp파일 - 생성자 Trigger->OnComponentBeginOverlap.AddDynamic( this, &해당클래스::OnOverlapBegin ); void 해당클래스::OnOverlapBegin( class UPrimitiveComponent* selfComp, c..
https://www.parallelcube.com/2021/03/23/camera-shakes/ Camera shakes – Parallelcube Camera shake or screen shake is a technique used in a lot of videogames to simulate world or player movement events resulting in a more realistic or impacting game. In this tutorial we are going to see the most used camera shake effects and how to use this www.parallelcube.com