프로그래밍 언어 (プログラミング言語)/C && C++ 썸네일형 리스트형 C++ - Stack(STL) 목차 1. 스택(Stack)이란? 2. 스택 헤더 파일 3. 스택 기본 함수 1. 스택이란? 스택(Stack)은 대표적인 LIFO(Last In First Out) 구조입니다. 따라서 제일 마지막에 넣은 데이터가 처음으로 빠져나오는 것을 볼 수 있습니다. 스택의 기본함수에는 push, pop, empty, top, swap 등이 있습니다. 2. 스택 헤더 파일 stack STL을 사용하기 위해서는#include 헤더파일을 포함해야 합니다 . stack 이름 ; 으로 stack을 선언합니다. #include stack stack; 3. 스택 기본 함수 ▷ 스택에 데이터 추가하기 스택이름.push(데이터) 형태로 데이터를 추가합니다. stack.push(element) ▷ 스택에 데이터 삭제하기 스택이름.p.. 더보기 C++에서 문자열을 Parsing하는 다양한 방법 1. substr()으로 문자열 자르기 substr()은 문자열의 Index에서 원하는 길이의 문자열을 잘라서 string으로 리턴합니다. substr의 Syntax는 아래와 같습니다. 인자로 index와 길이를 받고 string을 리턴합니다. string substr (size_t pos = 0, size_t len = npos) const; 아래 예제는 문자열의 특정 부분을 자르는 코드입니다. substr(0, 5)는 Index 0에서 시작하는 5개의 문자를 잘라서 string으로 리턴합니다. substr(6, 5)는 Index 6에서 길이 5의 문자열을 잘라서 리턴합니다. #include #include int main () { std::string str = "Hello World, C++"; s.. 더보기 STL lower_bound() upper_bound() 이번에는 모든 분들이 다 아시는 sort를 제외한 다른 sorting 함수와 lower(OR upper)_bound()를 알아보도록 하겠습니다. [binary_search(arr_begin,arr_end,find_value) : 검색해주는 함수로서 찾는 값이 존재하면 True, 아니면 False를 리턴한다.] 이진 탐색(binary search)를 사용하는데, 정렬이 되어 있다는 가정하에 값을 빨리 찾고 싶을 때 사용합니다. arr_begin - 시작 arr_end - 끝 find_value - 찾고자 하는 값 [1 4 5 7 8 11 12 12 16 21 35] 11개의 값이 있다고 가정하자, 만약 여기서 21이라는 값을 찾고 싶다면, 어떻게 할까? 반복문을 사용해서 처음부터 끝까지 비교를 해 보면 됩.. 더보기 STL Binary Search function binary_search(target)는 target value이 들어 있는 배열(or vector)의 인덱스를 반환하는 줄 알았으나, bool 값을 반환을 한다. STL에서 지원하는 binary_search()는 세 개의 매개변수를 받는다. 첫 번째는 찾고자 하는 범위의 시작점, 두 번째는 찾고자 하는 범위의 끝점이다. 이 둘은 반복자(iterator)로 주어져야 한다. 세 번째 매개 변수는 찾고자 하는 수이다. 찾고자 하는 수를 매개 변수로 전달하면 된다. // binary_search(반복자.시작점, 반복자.끝점, 찾고자 하는 값); // 은 찾고자 하는 값을 찾으면 true를, 찾지 못하면 false를 반환한다. vector nums; int target = 3; bool isFound = bin.. 더보기 (ordered) Map vs Unordered Map C++에서 map은 red-black tree로 구현이 된다. Unordered Map은 hash table로 구현이 된다. 차이점 1. map과 unordered map의 큰 차이점은 구현에서부터 이미 차이가 난다. 2. map은 탐색 연산의 시간 복잡도가 O(log N)인 반면 unordered map은 hash table을 이용하므로 O(1) 3. map은 AVL 트리와 같이 삽입/삭제 시 항상 밸런스를 맞추기 위해 정렬을 하지만, unordered map은 그렇지 않다. 결론 1. 정렬을 필요로 하는 경우가 아니라면 연산 속도 면에서 unordered map이 훨~~~~~씬 유리 2. 일반적으로 key값이 짧고, int형인 경우 unordered map을 권장( 그 이유는 hash function.. 더보기 Map vs Multimap Map은 보통 중복된 값을 허용하지 않는다. 그러나 중복된 값을 허용하면서 동시에 Map을 이용하고 싶을 때에는 STL의 Multimap을 사용하면 된다. multimap에 대한 자세한 내용은 아래 링크를 참조! https://blockdmask.tistory.com/88 [C++] multimap container 정리 및 사용법 안녕하세요, BlockDMask 입니다.오늘은 연관 컨테이너(Associative container) 중 multimap 에 대해서 알아보도록 하겠습니다.multimap은 map과 거의 동일하지만 딱 한부분 만 다릅니다.key값이 중복 가능하다.map blockdmask.tistory.com 숙지하지 못한 map의 사용법 1. map은 무조건 key값으로만 조회를 한다. ->.. 더보기 이전 1 다음