c++95

c++17 | r-value를 l-value로 바꾸는 방법 안녕하세요! 이번에는 r-value를 l-value로 바꾸는 방법에 관하여 알아보겠습니다. 저가 이번에 그래픽공부를 하면서 진짜~~!! 엄청 많이 마주친 오류... 흠... 이 오류는 l-value가 있어야 할 자리에 r-value가 존재하기 때문이죠. l-value는 고유의 메모리주소를 참조할 수 있으며, r-value로도 치환이 가능하지만, 반대로 r-value는 불가능하죠... 그래서 생기는 문제입니다. 저는 이 문제를 그냥 고유의 메모리주소를 할당해주어 인스턴스 하나만들어가면서 고치고있었는데, 매번~ 이 오류뜰때마다 인스턴스만들기도 뭣하고.... "뭐 간단하게 바꿀수있는법 없나?" 라고 생각하면서 스택오버플로우를 탐방해보았습니다. 그리고.. 발견!! 이 방법이 진짜 간단해요. https://sta.. 2022. 1. 30.
1부터 n사이의 홀수의 합을 O(1)로 구하는 방법 ( C++ 최적화 기법 ) 갑자기 생각나서 만들어보았습니다. 솔직히 for문으로 1부터 n까지 순회하면서 홀,짝수인지 판별하는것은 구현하기 매우 쉽죠. 하지만, 이랬을때 단점이 n의 수가 커질수록 그 연산시간은 n의 크기에 비례해서 증가한다는 점입니다. 우리는 n의 크기에 영향을 받지않고 항상 같은(짧은)속도로 연산을 하는 방법을 의논하는겁니다. 1부터 n까지의 홀수의 합을 O(1)로 구하는 방법#include using bint = std::int64_t; bint Get_1toN_in_O1(bint n){ bint ncore, ncycle, result; n -= (n & 1) ? 0 : 1; ncore = ((n + 1) >> 1); ncycle = (ncore >> 1); result = (ncycle * (n + 1)) .. 2022. 1. 22.
[UE4] 선형보간법(Linear Interpolation)을 이용하여 움직이는 객체를 만들자! 안녕하세요! 이번에 노트북 새로 장만한 기념으로 언리얼엔진을 공부하고있습니다. 앞으로는 자체엔진공부 & 언리얼엔진공부를 집중적으로 해보려구요!! [UE4] 선형보간법(Linear Interpolation)을 이용하여 움직이는 객체를 만들자! 선형 보간법(線型補間法, linear interpolation)은 끝점의 값이 주어졌을 때 그 사이에 위치한 값을 추정하기 위하여 직선 거리에 따라 선형적으로 계산하는 방법입니다. 만약에 이러한 상황이 있다고 가정해봅시다. 어떠한 정점A를 (10, 5)이라고 하고 어떠한 정점 B를 (-1, 0)라고 했을때, 일정한 속도로 A에서 B로가는데 5초가 걸렸다고 해봅시다. 그러면 1.7초가 걸렸을때는 어디에 위치할까요? 흠... 아무래도 선형보간법을 사용하지않고 암산으로 풀.. 2021. 12. 30.
윈도우 애플리케이션에서 콘솔 사용하는 법 윈도우 애플리케이션에서 콘솔 사용하는 법 오늘 게임엔진 공부하는데 하드웨어어댑터를 콘솔로 출력하고 싶어서 찾아봤는데, 이러한 내용이 있더라구요. https://stackoverflow.com/questions/587767/how-to-output-to-the-console-in-c-windows How to output to the console in C++/Windows When using iostream in C++ on Linux, it displays the program output in the terminal, but in Windows, it just saves the output to a stdout.txt file. How can I, in Windows, make the output a.. 2021. 12. 28.
주석(Comment) 강박증이 생겼다... 최근에 주석(Comment) 강박증이 생겼다... 뭔가 나만의 깔끔하고 독창적인 주석체계를 만들고싶다. 내가 최근에 아이디어를 내서 쓰고있는 주석문인데, 보기 되게 좋고 코드도 깔끔하게 보인다. 근데, 그냥 이렇게만 사용하면 안될것같다. 뭔가 설명, 함수파라미터, 클래스, 네임스페이스, 사용법 등등도 옵션처럼 주석에 끼워넣고싶다. 흠.... 이것도 연구해봐야겠다. 2021. 12. 25.
[C++/MSVC] 디버깅(Debugging) 강좌 (메모리 누수 방지) 해당강좌는 미완성강좌입니다. 완성될때까지 북마크하고 기다려주세요! 디버깅(Debugging) 강좌 안녕하세요! 이번 포스팅에서는 MSVC컴파일러에서 지원하는 디버깅 기능을 적극적으로 이용하여 저희가 직접 메모리에서 생겨나는 누수들을 탐지하고 디버그하는 내용을 알려드리겠습니다! 우선 시작하기 앞서서 목차를 확인하고 가시죠! 목차 1-1. Visual Studio 2022 Current (v143) 디버그 하는방법 1-2. 메모리 누수가 위험한 이유 2-1. _CrtDumpMemoryLeaks : 메모리누수를 방지하는 간단한 방법 2-2. _CrtSetReportMode : 메모리누수 보고를 설정하는 방법 2-3. 메모리누수를 탐지하고 통지하는 기능 만들기 2-4. MyCheckMemoryLeaks 클래스 .. 2021. 11. 25.
DirectX11 공부 5주차. 2D모델 렌더링 안녕하세요!! 이번에도 공부를 맞치고왔습니다~ 휴우~!! 이번에는 유니티, 언리얼, 코코스와 같은 상용엔진에서도 많이 사용한다는 스프라이트기능, 이펙트, UI와 같은 2D모델 렌더링에 관하여 공부하고왔습니다! 이번에 배운 내용을 요약하자면 깊이스텐실버퍼를 켜고끄는 방법, 동적으로 정점버퍼를 바꾸는 방법!! 이라고하면 좋겠네요~!! 참고 https://www.rastertek.com/ RasterTek - DirectX 10, DirectX 11, and DirectX 12 Tutorials The purpose of this website is to provide tutorials for graphics programming using DirectX 10, DirectX 11, and DirectX 12.. 2021. 11. 20.
DirectX11 공부 4주차. 정반사광, 인스턴싱 안녕하세요오오옷!! ㅠㅠㅠㅠ rastertek directx11 강좌사이트 끄적끄적해보다가... (빠밤..!!) 저가 매우 궁금해하던 인스턴스 구현에 관한 내용도 있더라구요!! ㅠㅠ 인스턴스 구현부분은 사실 rastertek에서 37번째에서 다뤄질 내용이였지만, 궁금증을 못참고 바로 임시로 건너뛰어버렸습니다.. "어떻게 하면 여러개의 도형을 그릴까?" 라는 궁금증이 사실 예전부터 있었습니다.. 흑... 그걸 달성!! 해서 기분좋네요. 물론 rastertek강의 그대로 따라하는건 저의 성미에 맞지않기때문에 또 저 맘대로 수정했습니다 ㅋㅋㅋ rastertek강의에서는 (5. 텍스쳐)에 관한 소스코드에 이어서 진행했지만, 저는 (10. 정반사광)로 이어서 진행했습니다. 왜냐하면 (5. 텍스쳐) 이부분은 아직3.. 2021. 11. 17.
DirectX11 공부 2주차. Directx초기화와 셰이더, 버퍼, HLSL 안녕하세요!! 이번에는 1주일동안 Directx11 더 공부하고왔습니다. Directx12는 Directx11기초부분 끝내고 시작해야될것같습니다. 자세히 봤는데 11과는 매우 다르더군요... 명령 목록이라느니 작업 표시줄이라느니.. 그래도 11보다는 더 효율적이라니까 반드시 12도 배워야겠습니다! 참고 참고한 사이트 RasterTek - DirectX 10, DirectX 11, and DirectX 12 Tutorials The purpose of this website is to provide tutorials for graphics programming using DirectX 10, DirectX 11, and DirectX 12. The DirectX tutorials are written us.. 2021. 11. 8.
0. [C/C++] 콘솔 텍스트 mmorpg 게임 강좌 샘플 제작 현황 WhiteSwordOnlineRPG 첫번째 현황 🆆🅷🅸🆃🅴 🆂🆆🅾🆁🅳 안녕하세요! 현재 2021년도의 겨울기념+블로그 방문자분들에게 감사함을 드리기 위해서, 이번에 기획하게 된 프로젝트입니다. 정식명칭은 WhiteSword Online RPG이며, 콘솔 텍스트기반의 온라인 mmorpg게임입니다. 공지사항을 올려드렸습니다. 못보신분들은 아래링크로 짤막하게 읽어주시면 좋겠습니다. https://mawile.tistory.com/notice/229 [공지사항] 2022 겨울에 진행할 프로그래밍 프로젝트 공지 2022 겨울에 진행할 프로그래밍 프로젝트 공지 이제 2021년의 끝이 다가오고있습니다! 아직까지는 가을날씨이긴하지만 이미 겨울이기도 하고, 12월달~2, 3월달 까지의 겨울기간동안 이번에 저희 블 mawile.tistory.com 우선 현.. 2021. 11. 7.
[임시중단] C++ UI/그래픽스 | 0. 시작하기및 윈도우생성 (GDI+무료강좌) 해당 포스팅은 임시중단되었습니다. 간단한 이유이지만 더욱 더 높은 퀄리티와 친절한 설명으로 돌아오겠습니다. 감사합니다! 안녕하세요! 원래는 UI/그래픽스시리즈는 파이썬으로만 진행할려고했는데, 국내자료중에서 c++ GDI+ 무료로 되어있는 관련자료가 찾아보니까 거의 안보이기도하고, 이렇게 된김에 유튜브에서도 GDI+강좌 진행중이니까, 블로그에서는 읽기형식의 자료형태로써 같이 사용해보겠습니다. 파이썬 UI/그래픽스는 해당 링크로 들어가시면 됩니다. 파이썬 UI/그래픽스 | 0. 라이브러리 설치및 시작하기 그래픽(Graphic)은 그리스어 낱말 γραφικός (그라피아)에서 온 것으로, 상품화, 정보 제공, 일러스트레이트, 엔터테인먼트를 위한, 벽, 캔버스, 컴퓨터 화면, 종이, 돌과 같은 어떠한 표면에 m.. 2021. 11. 1.
해킹도구 개발 | 리버스 쉘(Reverse shell) 이론및 개발실습 🔥 소개 안녕하세요! 이번에는 해킹도구 개발관련 카테고리가 개설된 후, 관련내용에 대한 첫번째 포스팅입니다! 이번 시간에는 리버스쉘(Reverse shell)에 관하여 포스팅하겠습니다. 🔥 리버스쉘(Reverse shell)이란? 공격자쪽에서 서버포트를 열고 공격대상쪽에서 접속하여 생성하는 쉘입니다. 연결이 설정되면 공격자가 공격 대상자의 컴퓨터에서 실행할 명령을 전송하고 결과를 가져올 수 있습니다. 이러한 이유로 모의해킹의 필수프로그램이 될 수 있었으며 원격으로 쉘을 생성할 때 이용됩니다. 리버스쉘(Reverse shell)이나 바인드쉘(Bind shell)을 실습할 수 있는 대표적인 사례로는 netcat이 있습니다. (해당 포스팅에서는 netcat같은 외부 툴의 의존없이 처음부터 끝까지 직접 다 만들.. 2021. 10. 19.
C++ | 문자열 안에서 특정 문자열 찾기 안녕하세요!! 이번에는 c++ 문자열 안에서 특정 문자열을 찾는 방법에 관하여 소스코드와 이론을 통하여 설명하겠습니다. 소스코드 #include #include #include std::vector findText(const std::string text, const std::string input){ std::vector result; std::size_t nPos = 0; for(;;){ nPos = text.find(input, nPos); // text[nPos]부터 input이라는 문자열을 찾는다 if( nPos != std::string::npos ) { // 만약 찾았다면 std::string subtext = text.substr(nPos, input.size()); // 문자열쪼개기 st.. 2021. 10. 17.
머신러닝 | 퍼셉트론(Perceptron) 이론과 실습 현재 머신러닝 분야에서 인공신경망의 근원이 되는 퍼셉트론(Perceptron)에 관하여 저가 개인적으로 공부한 내용을 바탕으로 포스팅을 진행하겠습니다. 퍼셉트론(Perceptron)은 프랑크 로젠블라트(Frank Rosenblatt)가 1957년에 제안한 초기 형태의 인공 신경망으로 다수의 입력으로부터 하나의 결과를 내보내는 알고리즘입니다. 퍼셉트론(Perceptron)은 위 사진처럼 여러 개의 입력값을 집어넣으면, 가중치와 편향에 의해서 새로운 결괏값으로써 변환되어 나옵니다. 가중치(w)는 입력 신호가 결과에 주는 영향력을 나타내며, 편향(b)은 뉴런이 얼마나 쉽게 활성화되느냐에 대한 수치입니다. 이 단순한 퍼셉트론의 활성화 함수는 다음과 같습니다. \( if \sum_i^n [x_{i} \cdot w.. 2021. 10. 15.
배열의 차원을 구하는 방법 C++ (강화버전) 안녕하세요!! 이번에는 저번에 배열의 차원의 찻수를 구하는 방법에 관하여 포스팅했습니다. 몇시간 더 삽질하면서, "벡터에 클래스가 들어와도 정상적으로 작동시킬수 없을까?"라는 생각이 들어서 강화버전을 준비했습니다. https://mawile.tistory.com/206 배열의 차원을 구하는 방법 C++ 우리는 흔히 배열의 크기를 구하고는 합니다. 예를들어서 이런식으로 말이죠.. int main() { int arr[5]; int size = sizeof(arr) / sizeof(arr[0]); } 하지만 ... 만약 아래 코드와 같은 5차원 배열이 존재할때,.. mawile.tistory.com 이번에는 저번에 만들었던 로직을 살짝수정하여 좀더 강력하게, 클래스가 와도 정상작동되게 수정했죠...훗.. #.. 2021. 10. 12.