티스토리 뷰

소식

[C++] 나 보려고 만든 STL

Hani_Levenshtein 2021. 7. 2. 18:36

String

str.resize(n,'x')

-> str이 n보다 짧으면 n개 남기고 쳐냄

-> str이 n보다 크면 str뒤에 x로 초기화

 

str.c_str()

-> str를 str+'\0'로 바꿔줌

 

str.substr(n,m)

-> str의 n번째 인덱스부터 m개의 문자를 추려냄

-> m이 없으면 n번째부터 끝까지

 

str1.compare(str2)

-> str1, str2를 비교해서 사전순으로 str1이 빠르면 -1 같으면 0 느리면 1

 

str1.find(str2)

 

str1.push_back('x')

-> str1 = str1 + 'x'

 

str1.pop_back()

-> str1 마지막 문자 제거

 

reverse(str.begin(), str.end())

-> 반환값없음 str이 뒤집어짐

 

str1.replace(n,m,str2)

-> str1의 n번째문자부터 m개의 문자를 제거하고 그 자리에 str2를 삽입

-> str2는 ' ' 말고 " "로 해야함

 

set

 set<string,greater<string>> set;  내림차순 정렬

-> key로 자동 오름차순 정렬

-> multiset으로 선언할 경우 upper_bound, lower_bound가 쓸모있어짐

 

set.upper_bound(x)

-> 마지막 x가 발견된 곳의 다음 주소. 없으면 찾아본곳까지 반환

-> 내림차순이면 

set.lower_bound(x)

-> 첫 x가 발견된 곳의 주소. 없으면 찾아본곳까지 반환

 

auto range = set.equal_range(x)

-> set.lower_bound + set.upper_bound

 

 

map

-> key로 자동 오름차순 정렬

-> multimap으로 선언할 경우 upper_bound, lower_bound가 쓸모있어짐

 

 

비교방법

 

 

 

 

Priority Queue

-> 오름차순 우큐

priorty_queue<int, vector<int>, greater<int> > pq

 

-> 구조체 우큐

priority_queue<person,vector<person>, order2> pq

 

List

list.insert(n,m)

-> n주소위치에 m을 넣고 m을 가리키는 주소를 반환

 

list.erase(n)

-> n주소위치에 있는 원소를 삭제하고 다음원소를 가리키는 주소 반환 

 

list.remove(m)

-> list에서 m과 같은 원소를 모두 제거함

 

list.reverse()

->리스트 뒤집기

 

하나만 만들기

#define all(v) v.begin(), v.end()

#define make_unique(v) sort(all(v)), v.erase(unique(all(v)), v.end())

 

 

숫자에서 문자로

int + '0'

 

문자에서 숫자로

char - '0'

 

문자열에서 숫자로

int x = stoi(str)

 

숫자에서 문자열로

string s = to_string(int)

 

string s = "asd"

s[1] ='k'

cout<< s .... akd

이게되네

 

댓글