본문 바로가기

STL

(15)
[C++] STL map Container 사용 방법 정리 (feat. map & [hash_map]unordered_map & multi_map) * 다음 포스팅은 STL map Container의 사용 방법 및 map & multimap & unordered_map[hash_map]에 관련된 내용을 포함하고 있습니다. Hash Table에 관한 선수지식이 부족하신 분들은 다음 포스팅을 참고해 주세요. → [DataStructure] Hash 자료구조 개념 정리 * 개인적인 공부 내용을 기록하는 용도로 작성한 글 이기에 잘못된 내용을 포함하고 있을 수 있으며, 지속적으로 수정해 나갈 예정입니다. _Contents #1 About map container #1.1 map & multimap - map container Time Complexity #1.2 unordered_map[hash_map] - unordered_map Time-Complexi..
[C++] STL List erase member function 사용 시 주의점 * 다음 포스팅은 STL List Container의 erase 멤버 함수를 사용 시 발생할 수 있는 오류에 대해 다룹니다. * 개인적인 공부 내용을 기록하는 용도로 작성한 글 이기에 잘못된 내용을 포함하고 있을 수 있습니다. Related → STL List Container 사용 방법 정리 Content #1 Vector erase member function #2 List erase member function #1 Vector erase member functon STL 대부분의 Container는 지정된 iterator 위치의 원소를 삭제하는 erase 멤버 함수를 제공합니다. 이는 list 뿐 만 아니라 vector container 또한 erase 멤버 함수를 포함하고 있습니다. 다음은 1,..
[C++] STL List Container 사용 방법 정리 * 개인적인 공부 내용을 기록하는 용도로 작성한 글 이기에 잘못된 내용을 포함하고 있을 수 있습니다. * 다음 포스팅은 C++ STL List Container의 사용 방법에 대한 내용에 대해 기술하고 있으며, Linked List (연결 리스트) 의 개념 혹은 구현 방법에 대한 내용을 원하시는 분은 다음 포스팅을 참고해 주시기 바랍니다. _ Related → [DataStructure] 연결 리스트 : Linked List 개념 정리 → Linked List 구현 Witch C/C++ (미완성) _Content #0 Access List Container With For & at & [] #1 List Container Initialization : List 초기화 & 선언 #1.1 생성자를 이용한 초..
[C++] 순열&조합 구하는 함수 next_permutation [C++] next/prev_permutation * 개인적인 공부 내용을 기록하는 용도로 작성한 글 이기에 잘못된 내용을 포함하고 있을 수 있습니다. _contents #1 순열이란? #2 next_permutation #3 주의점 #4 조합 구현하기 _Fix → 2022-09-11 #4 조합 구현하기 추가 #1 순열과 조합 순열[permutation]이란 순서가 부여된 서로 다른 n개의 원소에서 r개의 원소를 뽑아 한 줄로 세우는 모든 경우의 수를 의미한다. 예를 들어 {1, 2, 3} 집합의 원소들의 모든 순열을 구하면 다음과 같다. {1, 2, 3} {1, 3, 2} {2, 1, 3} {2, 3, 1} {3, 1, 2} {3, 2, 1} 이러한 순열을 기호로 나타내는 경우 영어 Permutatio..
[C++] tuple 사용법 & 예제 [C++] tuple * 개인적인 공부 내용을 기록하는 용도로 작성한 글 이기에 잘못된 내용을 포함하고 있을 수 있습니다. _contents #1 튜플 초기화 : make_tuple #2 튜플 원소 접근 : get #3 튜플 원소 분해 : tie #4 두 개의 튜플 연결 : tuple_cat #5 서로 다른 튜플 변경 : swap _ref https://www.youtube.com/watch?v=T9-agjKW4PQ #1 튜플 초기화 tuple은 헤더에 정의되어 있다. 튜플의 선언 방식은 다음과 같다. tuple 키워드를 사용해 꺽쇠 안에 하나로 묶을 데이터타입을 나열한다. 데이터 타입을 나열한 꺽쇠를 닫아준 뒤 튜플의 이름을 작성하고 소괄호() 안에 tuple의 원소들을 데이터타입에 맞게 초기화..
[BOJ] C++ 11650 "좌표 정렬하기" 문제 풀이 _ nov #INFO 난이도 : SILVER5 문제 유형 : 정렬 출처 : 11650번: 좌표 정렬하기 (acmicpc.net) #SOLVE 시간복잡도를 생각하지 않고 무작정 구현했더니, 시간초과가 발생했다. 아래는 모든 원소를 차례로 비교하는 방식의 알고리즘인데, 이는 n의 값이 100,000이 되었을 때 거의 100초에 달하는 시간이 걸리게된다. #include using namespace std; int main(){ ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int n; cin >> n; vector xy; xy.resize(n); for(int i = 0; i > xy[i].first >> xy[i].second;..
[C++] string::erase - 특정 문자열 삭제 함수 [C++] string::erase *개인적인 공부 내용을 기록하는 용도로 작성한 글 이기에 잘못된 내용을 포함하고 있을 수 있습니다. _contents #1 string::erase #2 example #2.1 sequnce _ 특정 길이 만큼의 문자열 제거 #2.2 ch _ 특정 위치의 문자 제거 #2.3 range _ 특정 범위를 지정해 문자열 제거 #2.4 erase & find _ 특정 문자를 탐색하여 제거 #1 string::erase 헤더에 정의된 erase함수는 문자열에서 특정한 문자열을 제거해주는 기능을 수행하는 함수이다. erase 함수의 사용법은 3가지로 나뉜다. string& erase(size_t pos = 0, size_t len = npos); // pos부터 len 길이만큼 ..
[C++] Tokenizing : 문자열 파싱 _ split (with find & substr) [C++] Tokenizing *개인적인 공부 내용을 기록하는 용도로 작성한 글 이기에 잘못된 내용을 포함하고 있을 수 있습니다. _contents #1 Tokenizing #2 find & substr function #3 split *공백을 기준으로 2개의 token 생성 *공백을 기준으로 3개 이상의 token 생성 #1 Tokenizing Tokenizing이란 Text를 delimiter(공백, 특수문자 등)을 기준으로 여러개의 Token으로 나누는 것을 의미한다. 그리고 이런 Tokenizing을 수행하는 것을 Tokenizer 이라고 하는데 대표적으로 split 함수가 있다. 하지만 JAVA, Python과 같은 언어들과는 달리 C++은 별도의 Tokenizer를 제공하지 않는다. 하지만 f..