C++

· C++
1. atoi(), stoi()int main(){ string a = "-1234"; cout stoi()뿐만아니라 stod(), stol(), stof() 도 존재한다. 2. to_string()int main(){ int a = -1234; cout
· C++
reverse()는 STL 지원 함수로 문자열, 배열, 벡터 모두 뒤집을 수 있다. 반환형이 없고 string 메서드가 아니므로 reverse(시작주소, 끝주소) 와 같이 사용한다. (A.reverse() X) 1. 문자열 string A = "abcde"; reverse(A.begin(), A.end()); cout
· C++
Stack 1. push(value) stack stk; stk.push("hello"); 2. pop() pop()의 반환형은 없다. 중요한 것은 스택이 empty 일 때, 런타임에러(Segmentation fault)가 발생한다. stack stk; stk.pop(); 3. top() stack stk; stk.push("hello"); auto a = stk.top(); cout
· C++
1. push_front(value) list a = {1,2,3}; a.push_front(9); [결과] a is 9 1 2 3 2. push_back(value) list a = {1,2}; a.push_back(1); [결과] a is 1 2 1 3. insert(idx, value) list a = {1,2,3,4}; auto it = a.begin(); it++; a.insert(it ,10); [결과] a is 1 100 2 3 4 4. erase(idx) erase()는 iterator를 반환하기 때문에 iterator it 를 계속 사용하려면 반환받아야 한다. iterator를 반환받지 않고 동일한 iterator를 사용하면 런타임에러가 발생한다. // 1. 반환받지 않은 경우 list ..
· C++
lower_bound()는 정렬되어 있는 배열에서 찾으려는 값의 첫 인덱스, upper_bound()는 찾으려는 값을 초과하는 인덱스 중 첫 인덱스를 찾는다. 이진탐색을 기반으로 탐색하기 때문에 반드시 정렬된 배열에 사용해야 한다. 아래 숫자 3을 찾는 코드를 통해 실제 사용 법을 쉽게 파악할 수 있을 것이다. #include using namespace std; int main(){ vector a {1,2,3,3,3,4}; cout
· C++
01. +=메서드는 아니지만 문자열을 더할 때 사용한다. push_back() 메서드는 문자 하나씩밖에 더하지 못해 += 를 더 자주 사용한다.string a = "abc"; a += "d";02. begin(), end()begin()은 문자열의 첫 번째 요소를 가리키는 이터레이터를 반환하고 end()는 문자열의 마지막 요소의 그 다음을 가리키는 이터레이터를 반환한다. 해당 위치의 값을 뽑아내기 위해서는 이터레이터를 기반으로 * 를 사용할 수 있다.string A = "abc"; cout
· C++
순열과 조합은 이미 중고등학교 때 배운 개념일텐데, 코딩테스트를 준비할 때에도 중요한 개념이다. 순서에 상관 있게 뽑는 것을 순열 순서에 상관 없이 뽑는 것을 조합 이라고 한다. 예를 들어, {1,2,3} 에서 3개를 순열로 뽑으면 3P3으로 {1,2,3}, {1,3,2}, {2,1,3}, {2,3,1}, {3,1,2}, {3,2,1} 여섯 가지(3!), 3개를 조합으로 뽑으면 3C3으로 {1,2,3} 한 가지이다. 순열 1. STL next_permutation c++에서는 next_permutation() 함수를 제공하는데, 이는 오름차순을 기준으로 정렬된 배열을 순열로 만든다. 반드시 오름차순 정렬되어 있어야 한다. next_permutation()의 매개변수(parameters)는 순열을 시작할 ..
· C++
array, vector의 가장 큰 요소의 주소를 추출하는 함수 max_element 이다. 반환형이 이터레이터이기 때문에 값을 끄집어내기 위해 에스터리스크 *을 사용해야 하고, begin() 값과의 차를 통해 인덱스를 끄집어낼 수도 있다. 예시 코드로 확인하자. #include using namespace std; int main() { vector v {1,2,3}; int max = *max_element(v.begin(), v.end()); auto max_idx = max_element(v.begin(), v.end()) - v.begin(); cout
· C++
array, vector 의 합을 구해주는 함수로 std::accumulate() 가 있다. 파이썬의 sum과 같다고 보면 된다. parameter는 accumulate (first, last, initial value) 로 사용하면 되는데, initial value는 sum의 초기값으로 항상 정해주어야 한다. 사용 예시를 아래 코드를 보자. 배열의 합을 구할 때는 sum의 초기값을 1로 정해주었다. #include using namespace std; int main() { vector v {1,2,3}; int v2[3] = {1,2,3}; cout T accumulate( InputIt first, InputIt last, T init ); (until C++20) template< class In..
· C++
unique 는 범위 안에 있는 요소 중 앞에서부터 서로를 비교해가며 중복되는 요소를 제거하고 나머지 요소들은 삭제하지 않고 그대로 두는 함수이다. O(n)의 시간복잡도를 가진다. 중복되는 요소를 제거하고 나머지 요소들을 그대로 둔다는 게 어떤 말인지 감이 안오는데 아래 코드와 결과값을 보자. #include using namespace std; int main() { vector v {1,1,2,2,3,3,2,2,4,4,5,5}; unique(v.begin(), v.end()); for (int i : v) cout
20240619
'C++' 카테고리의 글 목록