일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- sstream
- qsort
- 문법
- deletion
- 백준
- 5397
- 자료구조
- STL
- class_template
- template
- c++
- 13305
- sort
- '0'
- function_template
- Heap
- 총정리
- singly Linked List
- connected_component
- 알고리즘
- Algorithm
- Articulation_Point
- red-black tree
- list
- 예제
- Biconnected_Component
- Pair
- 구현
- data_structure
- Critical_Path_Analysis
- Today
- Total
- Today
- Total
- 방명록
목록c++/문법 (13)
어제의 나보다 성장한 오늘의 나
우리는 가끔 엄청 큰 값 , 엄청 작은 값으로 특정 변수를 초기화 해야 할 때가 있다. 특히 알고리듬 공부를 할 때, Graph 나 Tree에서도 사용이 된다. C 언어로 , C++로 어떻게 해야 하는 지 각각 알아보자. 1) C언어 헤더 파일 #include Code int min = INT_MIN; // min int max = INT_MAX; // max 예제 #include #include int main(void){ int min = INT_MIN; int max = INT_MAX; printf("Min : %d\n", min); printf("Max : %d" , max); } 결과 2) C++ 헤더 파일 #include Code int min = std::numeric_limits::min(..
오늘은 c++에서 변수의 타입을 변경해야 할 때 사용하는 함수 및 방법을 정리해봤다. Ps에서 정말 많이 사용 되기 때문에 반드시 알고 있어야 한다. 1) int -> char 변환 ◎ '0' or 48을 더해준다. int before = 3; char after = before + '0'; // int -> char 변환. char after = before + 48; // 이렇게 써도 결과가 같다. 2) char -> int 변환 ◎ '0' 이나 48을 빼준다. char before = '3'; int after = before - '0'; // char -> int int after = before - 48; // 대체 가능 1) 2) 가 가능한 이유 '0' 이 아스키 코드 48 이다. 그리고 '1..
◎ key , value 가 pair 형태로 연결되어 있는 자료 구조. ◎ 이진 탐색 트리의 일종이다. (레드 블랙 트리) ◎ 값을 찾을 때 시간 복잡도가 O(logN)으로 빠른 편이다. ◎ 삽입 / 삭제 할 때 시간 복잡도는 O(logN)으로 오래 걸린다. ◎ key 값을 기준으로 자동 정렬 되어 있다. ◎ key값이 중복 불가능 하다. 즉 , key 값이 유일하다. ◎ 메모리가 자동으로 동적 할당 된다. STL 사용법 헤더 파일 #include 선언 map m; key , value 순으로 선언. map m; // 내림차순 key 기준으로 기본 오름차순 이지만 greater를 사용하면 내림차순으로 바뀐다. 값 삽입 4가지 방법. m.insert( {0,"zero"} ); m.insert(make_pa..
에서 제공하는 Find 함수가 있고, 에서 제공하는 Find 함수가 있는데 두 가지를 모두 정리해보았다. ① 의 find 함수 헤더파일 #include 사용법 s.find( 찾을 문자열 , 시작 위치 , 찾을 문자열의 길이 ) string s = "Hello My Name is metoday."; int non; non = s.find("h"); //non == npos cout
1) s.substr(시작 위치 , 문자열의 길이) string s = "0123456789"; string subs1 = s.substr(2,5); // subs1 = "23456" string s = "0123456789"; string subs1 = s.substr(5); // subs1 = "56789" string s = "0123456789"; string subs1 = s.substr(); // subs1 = "0123456789" 시작 위치와 문자열의 길이를 입력 받아서 문자열을 자른다. 숫자 하나만 집어넣으면 시작 위치로 인식되어 시작 위치 부터 끝까지로 문자열을 자른다. 아무 것도 넣지 않으면 s 전체가 복사 됨. find 함수와 함께 사용 string s = "0123456789"; ..
Vector ◎ 동적 배열(dynamic array) 구조 ◎ Iterator & Index 접근이 가능 (개별 원소에 접근 가능) ◎ 접근 속도가 빠름 ● 삽입/삭제가 느림 (배열 기반) List ◎ Double Linked List(더블 링크드 리스트) 구조 ◎ Iterator를 이용한 접근 ◎ 삽입 / 삭제가 빠름 ● 접근 속도가 느리다. ● 개별 원소에 접근 불가능 어떤 경우에 어떤 container를 사용해야 할까? 삽입 , 삭제가 빈번할 경우 -> List 개별 원소에 접근을 자주 해야할 경우 -> vector Vector STL 헤더파일 #include 선언 vector v1 ; vector v2 = {4,3,2}; vector v3(4,3); // v3 = {3, 3, 3, 3} vecto..
공통 특징 ◎ 헤더파일 : ◎ iterator 사용 / 반환 ◎ 이진 탐색 구조 / 시간 복잡도 : O(log N) ◎ 오름차순 정렬되어 있어야 한다. ◎ 찾는 값이 벡터/배열 속에 여러 개 있을 경우 가장 앞에 있는 값을 가리키는 iterator 반환 Lower_bound ◎ 찾는 값이 없다면 찾는 값보다 큰 값 중 가장 작은 값을 찾는다. vector v = {6, 2, 3, 4 ,3 ,6 ,6 ,7, 2, 1}; sort(v.begin() , v.end()); // sorted : 1 2 2 3 3 4 6 6 6 7 cout