[C++] map value sort - 맵 값 정렬

    Map 컨테이너에서 처음 선언하는 방식의 따라 Key 기준으로 오름차순, 내림차순을 지정할 수 있지만 만약 Key가 아닌 Value를 비교하여 정렬을 하고 싶을 경우라던지 단순히 오름차순, 내림차순이 아닌 특정 조건에 의하여 정렬을 하고 싶을 경우 Map을 Vector로 변환한다음 Vector에서 정렬을 하던것처럼 해주면 된다. #include #include #include #include using namespace std; typedef pair ii; int main() { map map; map[5] = 20; map[2] = 50; map[3] = 10; map[4] = 40; map[1] = 30; map[6] = 60; for (auto it : map) { cout

    1e9? 2e9? 알고리즘 문제해결

    알고리즘 문제를 풀다 보면 1e9, 2e9라는 코드를 자주 볼 수 있다. 1e9 = 1*109 = 1000000000, 2e9 = 2*109 = 2000000000 위와 같이 간단하게 표현하는 방법이다. 특히, 2e9는 int 범위내에서 무한대 값을 나타내기 위해 사용하는 경우가 많다. 1e9? 2e9? 알고리즘 문제해결 (tistory.com)

    [Unity] 셰이더 프로퍼티 값 (예,색상 변경하기)

    매터리얼 프로퍼티 값 변경하기 MeshRenderer.material.Set~ 메소드를 통해 스크립트에서 마테리얼 특정 프로퍼티의 값을 실시간으로 변경할 수 있다. 하지만 이렇게 .material에 접근하여 프로퍼티를 수정하면 이런식으로 마테리얼이 개별 인스턴스로 복제되어, 배칭이 깨지게 된다. (.material에 접근하기만 해도 바로 개별 인스턴스가 생성된다.) 이를 방지할 수 있는 것이 Material Property Block, GPU Instancing이다. Material Property Block을 이용하여 프로퍼티 값을 수정할 경우, 마테리얼의 복사본을 생성하지 않고 값을 수정할 수 있다. 그리고 GPU Instancing을 적용하면 동일 마테리얼에 대해 드로우콜을 통합하여 동적 배칭을 적..

    [Unreal] 화면 정중앙 값 구하기

    뷰포트 통해 구할 수가 있다. GetGameViewport 함수는 UGameViewportClient형 클래스를 반환한다, 이는 뷰포트의 UI, 오디오 그리고 입력 시스템이다. 이걸 바탕으로 뷰포트 클래스(FViewport )를 가져온다. auto gameViewport = GetWorld()->GetGameViewport(); FVector2D viewportSize; gameViewport->GetViewportSize(viewportSize); viewportSize /= 2; // 최종 중앙값 참고 : https://docs.unrealengine.com/4.27/en-US/API/Runtime/Engine/Engine/UGameViewportClient/ https://docs.unrealeng..

    C++ stringstream 사용법 (문자열에서 공백 제외 추출, 특정값)

    1) 문자열을 나누는 stringstream C++에서 stringstream은 주어진 문자열에서 필요한 자료형에 맞는 정보를 꺼낼 때 유용하게 사용된다. stringstream에서 공백과 '\n'을 제외하고 문자열에서 맞는 자료형의 정보를 빼낸다. ˙ #include 전처리 헤더를 필수로 포함해야 한다. ˙ stream.str(string str) 은 현재 stream의 값을 문자열 str로 바꾼다. int num; string str = "123 456"; stringstream stream; stream.str(str); while(stream1 >> num ) cout num ) cout

    C# Boxing Unboxing 박싱 언박싱 값>참조, 참조>값

    Boxing ( 박싱 ) : 값 형식을 참조 형식으로 변환하는 것을 말한다. boxing은 암시적으로 발생한다. ( 예를 들어 int, float 를 object 로 변환하는 것을 말하는데 이 과정에서 단순 참조의 20배에 해당 하는 오버헤드와 메모리의 추가 사용이 발생한다. ) int test = 100; object tetsObj = test; UnBoxing ( 언박싱 ) : 참조 형식을 값 형식으로 변환하는 것을 말한다. Unboxing은 명시적으로 발생한다. ( 예를 들어 object를 int, float로 변환하는 것을 말하는데 이 과정에서 일반적인 할당의 4배에 달하는 시간이 소요된다. ) int test = 100; object testObj = test; int i = (int)test;..