union

자료구조

[자료구조 / C++] Disjoint Set

Disjoint Set 특징 그룹이 있다. 각 그룹은 공통된 요소들이 없다. (상호 배타적) 원소가 어떤 그룹에 속해있는가? (Find) 2개의 그룹을 어떻게 합칠 것인가? (Union) 특징에 대한 구체화 그룹이 있다 = 그룹을 특정할 수 있는 "그룹명"은 무엇으로 할까? = 그룹의 창시자 OR 임의 지정으로 (특정 원소 = 그룹의 상징 = Root)을 만든다. 각 그룹은 공통된 요소들이 없다. (상호 배타적) = 복잡도가 낮다. = 오직 하나의 Root를 가지고 있다. 원소가 어떤 그룹에 속해있는가? (Find) = Root를 찾으면 된다. How? = 최상위 부모까지 올라간다. = 따로 Root를 저장할 수도 있다. 2개의 그룹을 어떻게 합칠 것인가? (Union) = 그룹의 Root를 찾는다. =..

C

공용체 Union

공용체 Union 공용체란? * 같은 메모리를 여러 변수로 접근하는 것. * 메모리를 공유라는 메모리가 절약될 수 도? 공용체 선언과 초기화 * 배열처럼 초기화가 가능하다. ↓ int main() { union my_union { int password; char name[20]; int social_security_num; }; union my_union my_union_1 = { 0, }; return 0; } * 공용체 전체를 포괄하는 변수 하나만 초기화해줘도 된다. ↓ int main() { union my_union { char a1; char b1; int a; int b; }; union my_union my_union_1; my_union_1.a = 0; return 0; } 언제 사용하는..

C

Bit Flags

Bit Flags 극한의 성능충 * 사용자가 만들 수 있는 가장 작은 단위는 1바이트이다. * 극한의 성능을 위해 1바이트를 쪼개 쓰는 게 Bit Flags이다! ex) 1바이트에 bool형을 8개 넣을 수 있다구! 구조체로 선언 * 1비트씩 사용하겠다는 의미 typedef struct bit_flags{ unsigned char b0 : 1; unsigned char b1 : 1; unsigned char b2 : 1; unsigned char b3 : 1; } bit_flags_t; 구조체 사용법 * 만약 bit를 9개 사용한다면? (9비트) Byte Padding에 의해 2바이트를 차지하게 된다. (16비트) int main() { typedef struct bit_flags{ unsigned ch..

스누징어
'union' 태그의 글 목록