공부/c++

백준 실버 문법

minsun24 2025. 3. 17. 21:58

Set

  : 여러 데이터를 효율적으로 관리하기 위한 자료구조 클래스. 

 

Set     #include <set>

  : 집합. 중복원소가 없는 것이 특징. 삽입 시 자동으로 정렬된다.

 

Set의 템플릿 <_key, _pr, _Alloc> 

  • key : 해당 객체의 이름
  • pr : 정렬 기준. 내장된 비교형으로는 less<> / greather<> 등이 있다.
  • _Alloc : 메모리 할당

 

 

Unordered_set      #include <unordered_set>

  : set과 동일하나 정렬되지 않는다. 대신 검색, 순회가 빠르다.

 

 

메소드

  • insert: 삽입

Map

  : key-value 쌍으로 이루어진 자료구조. [key]를 통해 접근.

 

Map    #include <map>

  : 해시함수로 탐색.

 

multi_map    #include <map>

  : 중복 키를 허용하는 map구조. 해시함수를 통해 탐색한 뒤 중복 값에 대해 순차탐색을 한다.

 

메소드

  • insert : {key, value} 형태의 pair을 인자로 하여 원소값을 추가한다.
  • equal_range(key) : 키에 대한 값의 범위를 pair 쌍으로 반환한다. first가 시작 iterator, second가 마지막 원소값+1의 itorator를 가리킨다.

Vector

  : 배열과 리스트의 하이브리드. 원소의 수가 2^n을 넘어갈 때마다 새 배열을 만들어 이동시킨다.

 

메소드

  • push_back() / emplace_back() : 새 원소를 뒤에 삽입. 클래스 객체의 경우 emplace_back이 중복 생성을 방지하여 더 빠르다.

// push_back() > 삽입할 객체를 직접 매개변수로 전달.

// emplace_back() > 삽입할 객체의 매개변수를 매개변수로 전달.

//

// ex) class Item{ Item(int i ) };   vector<Item> a;

//      a.push_back(Item(1)); //생성자를 호출하여 객체 생성 후, 해당 객체를 전달.

//      a.emplace_back(1);     //생성자 호출에 필요한 매개변수를 전달하여 a객체 내에서 Item 객체 생성.


String

  : ---

 

메소드

  • insert(index, str) : 해당 인덱스에 str 삽입. 오른쪽으로 밀린다.
  • replace(index, size, str) : index부터 size만큼 str로 대체한다.
  • tolower(char) : 해당 문자를 소문자로 변환한다.
  • pop_back() : 뒷 문자 제거.

iostream

입력

  • getline : string으로 한 줄 전체를 입력받음.  // cin 후 getline 명령 시 개행문자가 입력될 수 있다. -> cin.ignore()로 제거
  • cin : 공백을 기준으로 입력받음. 
  • stringstream(string) : 문자열을 문자열 스트림 객체로 변환.

 

double형 출력 형태 

  • cout.fixed() : 자릿 수 고정.
  • cout.setprecision(n) : 소수점 아래 n자리까지 표기.    #include <iomanip>

값 전달 방식

  : 8byte 이내의 자료형만 call by value로 동작하며, 보다 클 경우 call by leference로 동작한다.