알고리즘에 대한 C++ 언어 기본 사항 -(1)

고정 구문

#포함하다

네임스페이스 표준 사용;

모든 C++ 표준 라이브러리를 포함하는 헤더 파일

네임스페이스 – 변수 이름에 범위를 두어 다양한 라이브러리에서 변수 이름이 중복되지 않도록 합니다.

cin, cout 등이 std::cin처럼 호출되도록 std를 기본값으로 설정합니다.

알고리즘에 사용되는 간단한 구문

typedef

유형의 별칭을 축약할 때 사용할 수 있습니다.

예를 들어 유형의 이름을 int로 지정하려는 경우 i

=> typedef 정수 i

다음과 같이 사용할 수 있습니다. int a = 1;

=> ia = 1;

#정의하다

매크로 및 상수 값을 정의할 수 있습니다.

예를 들어

#define PI = 3.14

#define loop(x,n) for(int x=0; x++; x

사용법은 다음과 같습니다

루프(0,10){}

STL – 표준 템플릿 라이브러리

– 4가지 유형의 알고리즘, 컨테이너, 반복자 및 펑터를 제공합니다.

1) 알고리즘

정렬, 검색 등과 관련된 함수로 구성되어 있습니다. 일반적으로 sort()

2) 컨테이너 – C++에서 제공하는 데이터 구조

2-1) 시퀀스 컨테이너 – 단순히 데이터를 저장하는 데이터 구조. 배열, 벡터, dequeu, 목록 등.

2-2) 연관 컨테이너 – 데이터가 저장됨에 따라 자동 정렬다음과 같은 데이터 구조 – 설정, 지도 등, 중복 키가질 수 있다면 다중붙이다

2-3) 정렬되지 않은 연관 컨테이너 – 데이터가 저장될 때 자동으로 정렬되지 않는 데이터 구조. – 정렬되지 않은붙이다

2-4) 컨테이너 어댑터 – 시퀀스 컨테이너(stack, dequeue)의 데이터 구조로 만든 데이터 구조, 스택, 큐, priority_queue

3) 반복자 – 컨테이너에 저장된 요소의 주소를 가리키는 개체입니다.

컨테이너 구현은 일반화된 반복자를 통해 쉽게 순회할 수 있습니다.

벡터:: 반복자 자동 로 간단하게 표현할 수 있습니다.

시작() 및 끝(), 사전(반복자, cnt) – 반복자를 cnt로 증가

&*(begin()) 과 같이 사용하면 주소 값을 알 수 있습니다.

포인터와의 차이점은?

반복자는 컨테이너의 개체를 참조하며 제거할 수 없습니다. 포인터를 제거할 수 있습니다.

4) Functor – 함수 호출 연산자를 오버로드하는 클래스 인스턴스(객체)

Functor는 알고리즘 해결에 직접 사용되지 않지만 구조화 및 최적화에 사용할 수 있습니다.

함수를 호출하는 것처럼 객체를 호출할 수 있습니다.

함수 포인터의 일반화인 클래스 내에 캡슐화된 함수입니다.

장점: 인라이닝이 가능하기 때문에 함수 호출에 대한 부담이 없어 알고리즘 처리가 빠릅니다.

일반 함수와 달리 멤버 변수와 멤버 함수를 가질 수 있습니다.

함수 포인터와 달리 함수 개체는 형식이 명확해야 하므로 형식이 안전합니다.

함수 객체의 모양이 같아도 객체의 타입이 다르면 완전히 다른 타입으로 인식(다형성)한다.

컴파일러 최적화에 유용합니다.