1. insert 함수란?

insert() 함수는 C++ STL 컨테이너에 값을 삽입할 때 사용하는 함수이다.
다만 모든 컨테이너에서 사용 방식이 완전히 같은 것은 아니다.

컨테이너 종류에 따라 삽입 방식과 의미가 조금씩 다르다. 대표적으로 다음 컨테이너에서 자주 사용된다.

컨테이너 역할
set 중복 없이 값 저장
vector 배열처럼 값 저장
map key-value 형태 저장

 

 

2. set에서 insert

  • 기본형태
    set이름.insert(값);


  • 예제코드
    #include <iostream>
    #include <set>
    
    using namespace std;
    
    int main() {
    
        set<int> st;
    
        st.insert(3);
        st.insert(1);
        st.insert(2);
        st.insert(3);
    
        for(int x : st){
            cout << x << " "; // 1 2 3
        }
    }
  • 특징
    • 중복 저장 불가능
      st.insert(3);
      st.insert(3);
      //3을 두 번 넣어도 한 번만 저장된다.
      ​
    • 자동 오름차순 정렬
      // 이 순서로 넣어도 
      3 1 2 
      
      // 실제 저장은 아래와 같이 오름차순으로 정리된다.
      1 2 3 
      ​
    • 코딩테스트에서 set 자주 사용하는 이유
      중복 제거와 정렬을 동시에 처리할 수 있기 때문이다

 

3. vector에서 insert

  • 기본 형태
    vector이름.insert(삽입위치, 값);
  • 예제 코드
    #include <iostream>
    #include <vector>
    
    using namespace std;
    
    int main() {
    
        vector<int> v = {1, 2, 4};
    
        v.insert(v.begin() + 2, 3);
    
        for(int x : v){
            cout << x << " "; // 1 2 3 4
        }
    }
  • 의미
    v.insert(v.begin() + 2, 3);
    
    1. v.begin() + 2 // 는 세 번째 위치를 의미한다.
    2. 3 // 을 세 번째 위치에 삽입을 의미한다.
  • push_back과 차이
    구분 사용 예시 추가 위치 특징
    push_back() v.push_back(5); 벡터의 맨 뒤 가장 많이 사용, 단순 추가
    insert() v.insert(v.begin(), 5); 원하는 위치 중간이나 앞에도 삽입 가능
    vector<int> v = {1, 2, 3};
    
    v.push_back(4);
    // 결과: 1 2 3 4
    
    vector<int> v = {1, 2, 3};
    
    v.insert(v.begin(), 5);
    // 결과: 5 1 2 3

 

4. map에서 insert

  • 기본 형태
    map이름.insert({key, value});
  • 예제 코드
    #include <iostream>
    #include <map>
    
    using namespace std;
    
    int main() {
    
        map<string, int> mp;
    
        mp.insert({"apple", 3});
        mp.insert({"banana", 5});
    
        for(auto x : mp){
            cout << x.first << " : " << x.second << endl;
        }
    }
    
    //실행결과
    apple : 3
    banana : 5
  • 의미
    map은 key-value 형태로 데이터를 저장한다.
    apple : 3
    banana : 5
  • 특징
    • key 중복 불가능
      mp.insert({"apple", 10});
      //이미 "apple"이 존재하면 새로 삽입되지 않는다.

 

5. insert 함수 핵심 정리

컨테이너 사용 형태 특징
set st.insert(value) 중복 제거 + 자동 정렬
vector v.insert(위치, 값) 원하는 위치 삽입
map mp.insert({key, value}) key-value 저장



 

6. 최종 요약

insert() 함수는 STL 컨테이너에 값을 삽입할 때 사용하는 함수이다.

하지만 컨테이너마다 사용 방식이 조금씩 다르다.

  • set : 값 삽입 + 중복 제거
  • vector : 원하는 위치 삽입
  • map : key-value 삽입

코딩테스트에서는 특히 set.insert()를 많이 사용하며, 중복 제거와 정렬을 동시에 처리할 수 있어 매우 유용하다.

+ Recent posts