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"이 존재하면 새로 삽입되지 않는다.
- key 중복 불가능
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()를 많이 사용하며, 중복 제거와 정렬을 동시에 처리할 수 있어 매우 유용하다.
'언어 문법정리 > c++' 카테고리의 다른 글
| [C++] map 문법 총정리 (0) | 2026.05.30 |
|---|---|
| [C++] 정규표현식 regex란? (0) | 2026.05.19 |
| [C++] reverse() 함수 정리 (0) | 2026.05.16 |
| [C++] vector 원하는 구간만 자르기 (0) | 2026.05.16 |
| [C++] 대소문자 변환 방법 정리(함수, ASCII 코드 사용) (0) | 2026.05.11 |
