갬장장이
'lang' 카테고리의 글 목록 (2 Page)

lang

lang/c++

Bitwise operator (C/C++)

외판원 순회 문제 등에 사용됨. (어레이보다도 더 알차게 정보를 저장하기 위해 int의 bit를 사용) 1001 & 1000 = 1000 1001 | 1000 = 1001 ~1001 = 0110 1001001 2 = 0010010 어떤 숫자 >> k = 어떤 숫자 / 2^k XOR 진리표 00 0 01 1 10 1 11 0 1001 ^ 0111 = 1110

lang/c++

스마트포인터와 RAII

스마트포인터 : RAII가 사용되는 포인터 (정확한 정의는 아니지만 이렇게 이해하면 편함) RAII : Resource Acquisition Is Initialization > GC가 없는 C++에서 메모리누수(memory leak. 힙에 동적할당된 데이터가 삭제되지 않고 남아있는 것. delete하는 것을 잊어버리면 발생할 수 있다)를 방지하기 위해 RAII라는 디자인패턴을 사용할 수 있다. RAII는 쉽게 말해 어떤 포인터가 Scope 혹은 선언된 함수 범위를 벗어났을 때 자동으로 어떤 일을 처리하게끔 하는 기능을 제공하는 것을 말한다. 이 "자동 실행 기능"은 메모리 해제가 될 수도 있고, 다양한 것들이 될 수 있다. unique_ptr : Exclusive Ownership (즉 하나의 객체를 가..

lang/.NET

Delegate

https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=ntkor&logNo=220818178791 C# - Delegates 이번 포스팅에서는 델리게이트(Delegate)에 대해 알아보자.Delegate지금까지 포스팅에 나왔던 예제들은 ... blog.naver.com

lang/.NET

Winform 메모

EventHandler는 Delegate(혹은 대리자)이다. Delegate를 선언할 때는 자신이 대리하는 함수의 파라미터를 정의해야한다는 점에 유의할 것. 그러나 보통 Winform을 사용할 때는 코드를 통해 GUI를 만들기보다는 디자인창으로 직접 직관적으로 디자인함. 그러나 기본으로 제공되는 UI 오브젝트들 이외의 별도 UI를 만들려면 코드 구현법도 알고있어야 함. Winform으로 프로그램을 만들 때 유의할 점: 프로그램은 어떤 명령이 실행되는 도중에 창을 움직인다거나 다른 창을 클릭하는 등의 입력을 처리할 수 있게 해주는 게 좋다. (더 유저 친화적이다) 이를 비동기화된 프로그램이라고 한다. 반대로 동기화된 프로그램은 더 "컴퓨터스러운" 방식이다. (ex. 파일을 복사하는 프로그램이 있다고 할 때..

lang/.NET

C#, WinForm 메모

1. C#에서의 모든 변수, 데이터는 객체이며, 이들은 전부 "object"라는 최상위 클래스에서 파생된 것들이다. 2. nullable이란, 아무것도 들어있지 않은 object를 의미한다. 3. var은 컴파일러에 의해 자동으로 형을 할당받는 것을 의미한다. var i = 10; 4. object 클래스의 .Parse() 메소드는 문자열을 데이터로 변화시켜준다. int x; x.Parse("142"); -> 142가 x에 저장됨 비슷한 걸로 .ToString()이 있음. 5. C#에서 다중 배열을 만드는 방법은 두 가지가 있는데, 이 둘은 사실 다르다. 하나는 int[][] x = new int[3][]; 이고 또 하나는 int[ , ] x = new int[3,3]; 이다. 차이점은 전자는 가변배열(..

lang/c++

stl::queue 초기화

kindtis.tistory.com/574 STL Queue 초기화 ( STL Queue Clear ) STL의 Queue 컨테이너 경우 다른 컨테이너와 다르게 clear 멤버 변수가 없습니다. 그래서 이를 초기화 해주려고 하면, 아래와 같이 일일히 루프를 돌며 pop을 해주거나하죠 while (!mQueue.empty()) { mQueue.po kindtis.tistory.com 요약: clear()가 없으므로 내의 swap()사용. e.g. queue origin; queue newQueue; swap(origin, newQueue); 이후 origin을 호출하면 newQueue가 불려짐.

lang/c++

ceil floor round (#include <cmath>)

ceil -> 4.2를 5로 floor -> 4.2를 4로 round -> 4.2를 4로, 4.5를 5로

lang/c++

std::set의 iteration

iterator를 사용한다. 이 때 set.end()가 마지막 원소 다음을 가리킨다는 점에 유의하자. 따라서 for (std::set::iterator i = set.begin(); i != set.end(); ++i) 처럼 사용하면 된다. (auto가 더 편하긴 하다)