본문 바로가기

C++13

[자료형] char 자료형으로 for 반복문을 실행하면 어떻게 될까? 일반적인 for문의 사용은 다음과 같이 int형 변수를 초기화하여 사용한다. int main() { for (int i = 0; i < 250; i++) { cout 2021. 10. 26.
Sort 함수의 커스터마이징, 특정 조건 정렬 알고리즘 문제를 풀다보면 Algorithm 헤더에 포함된 Sort 함수를 자주 이용합니다. 기본적으로 디폴트 함수를 이용해 오름차순 정렬을 이용합니다. #include #include using namespace std; void main(){ int arr[10] = { 2,8,4,6,7,5,1,3,10,9 }; sort(arr, arr + 10); for (int i = 0; i < 10; i++) { cout 2021. 10. 4.
C++의 캐스팅 연산자 캐스트 연산자는 변수의 타입을 강제로 변환하는데 사용된다. 강제로 변환하는만큼 부작용이 있고 호환되지 않는 타입을 무리하게 캐스팅하는 경우 허가되지 않는 영역에 관여하게 되며 프로그램이 다운되는 경우도 종종 발생된다. C++은 기본 연산자외에 '기능을 축소하고 엄격한 규칙을 적용한' 4가지 캐스팅 연산자를 추가로 제공한다. 각각의 캐스팅 연산자는 캐스팅하는 영역에 차이점을 두어 알맞게 사용할 경우 안정성을 제공한다. (reinterpret제외) 연산자명 형식 기능 static_cast static_cast(d) 변환가능한 타입만 변환 dynamic_cast dynamic_cast(Parent) RTTI 참조, 부모-자식 안전한 변환허용 const_cast const_cast(p) 포인터의 상수성 변경 r.. 2021. 3. 25.
템플릿 함수 사용시 유의사항 함수 템플릿은 다양한 타입에 대해 대응할 수 있게 해준다. 매크로를 이용한 방법도 있지만 매크로 함수는 아주 간단한 동작에만 쓸 수 있어 활용에 한계가 있다. 템플릿의 선언은 다음과 같은 형식이다. template T function(T a,T b) { ... } 템플릿을 사용시 주의할 점은 함수 템플릿은 함수의 형식을 기억하는 틀일 뿐 그 자체로 작동하는 함수가 아니라는 점이다. 함수가 호출 되는 시점에 컴파일러로부터 호출 인수의 타입에 맞는 함수가 만들어진다. 이러한 과정을 인스턴스화라고 한다. 호출 되기전까지 템플릿 자체는 메모리를 소모하지 않는다. 다만 호출되는 함수가 많아질수록 다양한 버전의 함수가 생성된다는 점에 유의해야한다. 호출된 타입에 대해 인스턴스화 시키거나 함수를 삭제하는 것은 전적으.. 2021. 3. 2.