본문 바로가기

C++26

[c++] string 동적 할당에 관하여 알고리즘 문제를 풀다 런타임에러가 나서 고민하다 질문에 대한 답변으로 깨달아서 간단하게 정리하려고한다 string 이란 int a[4] 같은 정적 크기를 가진 배열이 아니다 동적이니 string 은 사실상 백터라고 보면 된다 따라서 string 변수만 선언하고 초기화를 안한채로 아래처럼 사용하면 잘못된 코드이다 string ori; string s; cin >> s; for(int i=0; i 2022. 6. 13.
[c++] lowe_bound, upper_bound, rotate lower_bound() : 타겟 이상(타겟과 같으면 포함)인 요소의 첫 위치를 찾음 lower_bound(탐색시작위치, 탐색끝내는 위치, 타겟) upper_bound() : 타겟 초과(같으면 포함 안함)인 요소의 첫 위치를 찾음 upper_bound(탐색시작위치, 탐색끝내는 위치, 타겟) lower, upper모두 타겟을 찾지 못할 시, end() 의 위치를 가리킴 - 반복자이므로 처음부터 한 번 쭉 훑고가기때문 **rotate() : 2차원 배열의 경우 90도 단위로 회전을 시키거나, 1차원 배열을 옆으로 몇칸씩 밀때 사용한다 rotate(시작반복자, 첫 위치로 올 반복자, 종료 반복자) 2022. 6. 13.
[c++] 제곱, 제곱근 함수 pow, sqrt pow() : 변수의 제곱을 구할때 사용하는 함수 a의 n승 을 구하고자 할때 a^n 이라 한다. 아래와 같이 함수로 구현가능하다 pow(a,n) // 숫자 a의 자료형에 맞게 암묵적 형변환이 이루어진다 sqrt() : 변수의 제곱근을 구할때 사용하는 함수 a에 제곱근을 씌우고자 할때 사용한다. 루트 a 와 같다. 아래와 같이 함수로 구현 가능하다 sqrt(a) // a 가 음수이면 NaN를 반환한다 # 두 함수 모두 앞에 자료형을 붙여 사용하자 2022. 6. 10.
구조체 내부에서 연산자 오버로딩 아래의 구문을 이해하기까지 꽤나 시간이 걸렸지만 이해한것이 있어 적어두고자 한다 bool operator < (const Point & a) const { if (x == a.x) return y < a.y; // 호출없이 쓰면 기존 구조체의 멤버 return x < a.x; // a로 호출해서 쓰면 구조체 a의 멤버 }operator < (기존 비교 연산자 a.y; } return x < a.x; } }; 위 식의 경우는 x가 1순위로 오름차순, y가 2순위로 내림차순, z가 3순위로 오름차순 정렬이라는 것을 알 수 있다 2022. 6. 9.