emplace
- C++에서 컨테이너를 사용할 때 자주 있는 함수
- 엄연히 insert와 약간은 다름 점들이 있다.
#include <queue>
priority_queue<int, string> pq;
pq.insert(make_pair(x,str));
pq.emplace(x,str);
pq.emplace(make_pair(x,str)); //emplace로 추가할 경우 두가지 모두 가능
- 또한 emplace로 추가할 때 만약 추가하는 값이 이미 기존에 존재하면 그 값을 지워버린다.
#include <iostream>
#include <queue>
using namespace std;
int main()
{
priority_queue<int> pq;
int N, num;
cin >> N;
for (int i = 0; i < N; i++)
{
cin >> num;
pq.push(num);
}
pq.emplace(10);
for (int i = 0; i < pq.size(); i++)
{
cout << pq.top()<< '\n';
pq.pop();
}
return 0;
}
위의 코드에 3, 10, 20, 30을 입력하였지만 pq.emplace(10); 때문에 출력시 10에 해당하는 요소는 사라진것을 확인할 수 있다.
'C++ > 자료구조' 카테고리의 다른 글
C++ [자료구조] / #forward_list #멤버 함수 (0) | 2023.04.08 |
---|---|
C++ [자료구조] / #priority queue (0) | 2023.03.28 |
C++ [자료구조] / # set #STL (0) | 2023.03.27 |
C++ [자료구조] / #맵 #map (0) | 2023.03.19 |
C++ [자료구조] / #queue 구조 및 클래스 사용법 (0) | 2023.03.19 |