-
C++ Container, 유용한 함수Algorithm/Grammar 2021. 6. 8. 13:13728x90
문자열
- 문자열 부분 추출시 => substr(인덱스, 글자 수)
-> 문자열 추출에 매우 유용하다.
-> 글자 수에 인자를 넣어주지 않으면 index부터 문자 끝까지를 반환한다.
- 숫자를 문자열 전환 => to_string(숫자)
int a = 123; string str1 = to_string(a); // 123이 string "123"로 변환되어 str1에 저장된다.
- 문자열을 숫자로 변환 => stoi(str)
string str_a ="7"; string str_b ="7.02"; string str_c ="3.14"; string str_d = "2300000000"; int after_a = stoi(str_a); // "7"을 int형 7로 바꿔줌 double after_b = stod(str_b); // "7.02"를 double형 7.02로 바꿔줌 float after_c = stof(str_c); // "3.14"를 float형 3.14로 바꿔줌 long int after_d = stof(str_d); // "2300000000"을 long int형으로 바꿔줌
- 문자열 일부 대체 => str.replace(시작주소, 끝주소, 바꿀 문자열)
-> 시작 주소부터 끝 주소 직전 까지를 문자열로 치환 해 준다.
string str1 = "TESTT"; str1.replace(str.begin()+1, str.begin()+4, "aa"); // str1 == "TaaT"
- String의 입출력
string str; cin >> str; //공백(space) 이전까지의 문자열 입력 getline(cin, str); //공백 포함 한 줄 전체 입력
- String의 비교 => str.compare
=> 문자열 비교(같으면 0, 비교할 문자열이 작으면1, 크면 -1 반환)
str.compare("비교 문자열");
- 숫자인지 체크하는 함수 => isdigit
string str = "123a"; cout << isdigit(str[0]); // 4(0 이외의 값) cout << isdigit(str[3]); // 0(false)
벡터에서 원하는 값 존재 유무 => find(v.begin(), v.end(), "값")
-> 만약 값이 존재하지 않는다면, v.end()를 return
-> 존재 할 시 해당 원소를 가리키는 반복자를 return
중복 없이 값을 저장하고 싶다면 => unordered_set<자료형> us;
-> 중복 상관 없다면 vector를 쓰겠지만, 중복을 허용하지 않는 경우에 쓰인다.
-> us.insert('값')시 값이 삽입되며, 만약 이미 존재하는 값일 경우 해당 명령은 자동으로 무시된다.
key - value 매칭이 필요하다면 (특히 문자열) => unordered_map<자료형> um;
-> 중복 저장 x
-> 만약 매칭을 시키면서 정렬도 필요하면 map<자료형> container를 쓴다.
문자열 전체를 대문자로 or 소문자로 => transform
-> transform(str1.begin(), str1.end(), str1.begin(), ::toupper);
-> transform(str1.begin(), str1.end(), str1.begin(), ::tolower);
-> 알파벳이 아닌 것들은 무시한다.
소수점 연산
-> double형과 int형을 ' / ' 연산 하면 소수점 연산이 잘 된다.
2차원 vector n x n 사이즈로, 0으로 초기화
-> vector<vector<int>> v(n,vector<int> (n,0);
sort시 compare 함수
- sort(시작주소, 끝주소, custom 함수 compare)
- vector, array 모두 사용 가능.
- compare의 경우, true시 해당 순서를 유지하고 false시 순서를 뒤집는다.
ex)
bool compare(int a, int b){ //오름차순 return a < b; /* 내림차순 return b > a; */ }
'Algorithm > Grammar' 카테고리의 다른 글
자바스크립트 코딩테스트 주요 문법 (0) 2021.06.11