Algorithm

[Algorithm] 알고리즘 기본

sayhee 2023. 2. 20. 19:05
728x90

c++로 알고리즘 공부해서 코테 마스터가 될테야 ***


typedef

타입의 이름을 새롭게 별칭으로 정의하고 타입 대신 별칭을 사용할 수 있는 것 ( 더 짧거나 의미있는 이름을 지을 수 있다 )

사용법 - typedef <타입> <별칭>

#include<bits/stdc++.h>
using namespace std;
typedef int i; //int라는 타입을 i 라는 새로운 별칭으로 바꿔서 표현 
int main(){
	i a =1;
	cout<<a<<"\n";
	return 0;
}

 

define

상수나 매크로를 정의 할 수 있다

#include <bits/stdc++.h>
using namespace std;
#define PI 3.14159 
#define loop(x,n) for(int x=0;x<n;x++)

int main(){
	cout<<PI<<"\n";
	int sum=0;
	loop(i,10){
		sum+=i;
	}
	cout<<sum<<"\n";
	return 0;
}

PI라는 상수정의, for 반복문을 loop라는 문자열으로 치환

 

STL

c++이 제공하는 라이브러리로 자료구조 함수 등을 제공한다

알고리즘, 컨테이너, 이터레이터, 펑터 이렇게 4가지를 제공하며 vector 자료구조나 sort() 함수를 쓸 수 있는 건

STL 덕이다!

 

알고리즘 : 정렬, 탐색 등에 관한 함수로 이루어져 있으며 sort()가 대표적이다.

컨테이너 : c++에서 제공하는 자료구조를 의미             

    - 시퀀스 컨테이너 : 데이터를 단순히 저장 ex) array, vector, deque, forward_list, list             

    - 연관 컨테이너 : 자료 저장 됨에 따라 자동정렬되는 자료구조, 중복키가 가능한 것은 multi가 붙음

    ex) set, map,multiset, multimap            

    - 정렬되지 않은 연관 컨테이너 : 자동정렬이 되지 않는 자료구조

    ex) unordered_set, unordered_map, unordered_multiset, unordered_multimap

    - 컨테이너 어댑터 : 시퀀스 컨테이너를 이용해 만든 자료구조 , stack, queue는 deque로 priority_queue는                         vector을 이용해 힙 자료구조로 만듬

펑터 : 함수 호출 연산자를 오버로드하는 클래스의 인스턴스

 

 

 

 

출처 - 큰돌 알고리즘 교안