본문 바로가기

전체 글45

[C++] STL 자료구조: bitset bool 자료형은 0 또는 1을 저장하지만, 1byte = 8bit의 저장공간을 사용한다. 이유는 cpu가 자료형을 할당할 때 바이트 단위로 주소를 지정하기 때문이다​bitset은 이렇게 낭비되는 7bit를 없애기 위해서 0, 1을 하나 당 1bit에 저장하는 자료형이다. bitset을 bool []이나 vector 대신 이용하면 메모리를 1/8만 사용하면서 여러 유용한 기능을 사용할 수 있다.​bitset은 연속된 메모리 공간을 잡아둔 뒤, 비트 연산을 통해 bit 단위로 값들을 저장하는 방식으로 구현되어있다.​메모리 공간의 각 칸들은 구현마다 다르겠지만 보통 32bit 또는 64bit로 이루어져있으며, 따라서 32 또는 64개의 bitset 칸들을 연산 하나로 한 번에 처리할 수 있다. 이런 이유로 .. 2024. 5. 10.
[C++] STL 자료구조: Pair, Tuple pair, tuple은 여러 개의 자료형을 묶어서 관리할 수 있게 해주는 편리한 자료형이다. 보통 2개의 자료형을 함께 다뤄야하면 pair를, 3개 이상을 다뤄야 하면 tuple을 사용한다. ##Pair 예시 1using pii = pair; //자주 사용하는 조합은 별칭으로 생성해도 된다.int main() { fastio; pii a; // a = { 0, 0 } pii b(1, 2); // b = { 1, 2 }; 2개가 쌍으로 pair c{ "HI", 3.14 }; // c = { "HI", 3.14 }  cout first second cout   vector v; v.push_back(a); v.push_back({ 3, 4 }); v.push_back(make_pair(5, 6));  fo.. 2024. 5. 9.
[C++] STL 자료구조: unordered_set, unordered_map - 이름에서 알 수 있듯이 내부 원소들이 정렬되어있지 않다는 점에서 unordered_set, unordered_map은 set, map과 차이점이 있다.- ​unordered_set, unordered_map은 내부적으로 hash table을 사용해 구현되어있다.hash table은 삽입, 삭제, 검색을 지원하며 hash table의 특징 상 연산의 시간복잡도는 평균 O(1), 최악의 경우 O(n)이다. 이는 BBST로 구현된 set, map의 연산이 O(logn)인 것과 비교했을 때 평균적으로 더 좋다.- 또한 unordered_set, unordered_map은 set, map과 마찬가지로 원소가 중복될 수 없다. 만약 중복된 원소를 사용하고 싶다면 unordered_multiset, unorder.. 2024. 5. 9.
L3. Text Classification 출처: 딥 러닝을 이용한 자연어 처리 입문 (위키북스)링크: https://wikidocs.net/book/2155Embedding Layer워드 임베딩(Word Embedding): 단어를 벡터로 표현하는 방법으로, 단어를 밀집 표현으로 변환한다. 1. 희소표현(Sparse Representation)원-핫 벡터들은 표현하고자 하는 단어의 인덱스의 값만 1이고, 나머지 인덱스에는 전부 0으로 표현되는 방법이다. 이렇게 벡터 또는 행렬의 값이 대부분이 0으로 표현되는 방법을 희소 표현(sparse representation)이라고 한다. 원-핫 벡터는 희소 벡터이다.이러한 희소 벡터의 문제점은 단어의 개수가 늘어나면 벡터의 차원이 한없이 커진다는 점이다. 원-핫 벡터로 표현할 때는 갖고 있는 코퍼스에 단.. 2024. 5. 8.