多重集::emplace_hint()是C++ STL中的內置函數,它將在多重集中插入新元素。在函數的參數中傳遞一個位置,該位置作為提示,在將元素插入其當前位置之前從搜索操作開始。該位置僅有助於使過程更快,而不能確定要在哪裏插入新元素。僅在多集容器的屬性之後插入新元素。
用法:
multiset_name.emplace_hint(iterator position, value)
參數:該函數接受兩個強製性參數,如下所述:
- position:該參數用作在元素當前位置插入元素之前從中進行搜索操作的提示。該位置僅有助於加快處理速度,而不能確定要在哪裏插入新元素。僅在多集容器的屬性之後插入新元素。
- value:這指定要在多集容器中插入的元素。
返回值:該函數返回一個迭代器,該迭代器指向插入位置。
以下示例程序旨在說明上述函數。
示例1:
// CPP program to demonstrate the
// multiset::emplace_hint() function
#include <bits/stdc++.h>
using namespace std;
int main()
{
multiset<int> s;
auto it = s.emplace_hint(s.begin(), 1);
// stores the position of 2's insertion
it = s.emplace_hint(it, 2);
// fast step as it directly
// starts the search step from
// position where 2 was last inserted
s.emplace_hint(it, 4);
// this is a slower step as
// it starts checking from the
// position where 4 was inserted
// but 3 is to be inserted before 4
s.emplace_hint(it, 3);
// prints the multiset elements
for (auto it = s.begin(); it != s.end(); it++)
cout << *it << " ";
return 0;
}
輸出:
1 2 3 4
示例2:
// CPP program to demonstrate the
// multiset::emplace_hint() function
#include <bits/stdc++.h>
using namespace std;
int main()
{
multiset<int> s;
auto it = s.emplace_hint(s.begin(), 1);
// stores the position of 2's insertion
it = s.emplace_hint(it, 2);
// fast step as it directly
// starts the search step from
// position where 2 was last inserted
s.emplace_hint(it, 4);
// this is a slower step as
// it starts checking from the
// position where 4 was inserted
// but 3 is to be inserted before 4
s.emplace_hint(it, 3);
// slower steps
s.emplace_hint(s.begin(), 6);
s.emplace_hint(s.begin(), 6);
s.emplace_hint(s.begin(), 6);
s.emplace_hint(s.begin(), 6);
// prints the multiset elements
for (auto it = s.begin(); it != s.end(); it++)
cout << *it << " ";
return 0;
}
輸出:
1 2 3 4 6 6 6 6
相關用法
- C++ multiset equal_range()用法及代碼示例
- C++ multiset find()用法及代碼示例
- C++ multiset begin()、end()用法及代碼示例
- C++ multiset insert()用法及代碼示例
- C++ multiset key_comp()用法及代碼示例
- C++ multiset clear()用法及代碼示例
- C++ multiset empty()用法及代碼示例
- C++ multiset count()用法及代碼示例
- C++ multiset get_allocator()用法及代碼示例
- C++ multiset crbegin()、crend()用法及代碼示例
- C++ multiset rbegin()、rend()用法及代碼示例
- C++ multiset cbegin()、cend()用法及代碼示例
- C++ multiset max_size()用法及代碼示例
- C++ multiset::emplace()用法及代碼示例
- C++ multiset erase()用法及代碼示例
注:本文由純淨天空篩選整理自gopaldave大神的英文原創作品 multiset emplace_hint() function in C++ STL。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。