C++ STL 中的 multiset emplace_hint() 函式


在本文中,我們將討論 C++ STL 中 multiset::emplace_hint() 函式的工作原理、語法和示例。

什麼是 C++ STL 中的 multiset?

Multiset 與 set 容器類似,這意味著它們以鍵的形式儲存值,就像 set 一樣,並按照特定的順序儲存。

在 multiset 中,值與 set 一樣被識別為鍵。multiset 和 set 之間的主要區別在於,set 具有不同的鍵,這意味著沒有兩個鍵是相同的,而在 multiset 中,可以存在相同的鍵值。

Multiset 鍵用於實現二叉搜尋樹。

什麼是 multiset::emplace_hint()?

multiset::emplace_hint() 函式是 C++ STL 中的內建函式,它在 <set> 標頭檔案中定義。此函式用於在關聯的 multiset 容器中插入一個帶有提示的新元素。

提示用於告知函式我們希望在何處放置新元素,然後它會在相應位置構造並插入該元素。此函式將容器的大小增加 1。

語法

ms_name.emplace_hint(const_iterator position, args&& val);

引數

該函式接受以下引數:

  • position - 我們希望放置元素的提示位置。
  • val - 我們希望在指定位置之後構造和放置的值。

返回值

此函式返回指向已放置元素的迭代器。

示例

 線上演示

#include <bits/stdc++.h>
using namespace std;
int main() {
   multiset<int> check;
   auto i = check.emplace_hint(check.begin(), 4);
   i = check.emplace_hint(i, 1);
   check.emplace_hint(i, 9);
   check.emplace_hint(i, 10);
   cout<<"Elements are : ";
   for (auto i = check.begin(); i!= check.end(); i++)
      cout << *i << " ";
   return 0;
}

輸出

如果我們執行以上程式碼,它將生成以下輸出:

Elements are : 1 4 9 10

示例

 線上演示

#include <bits/stdc++.h>
using namespace std;
int main() {
   multiset<int> check;
   auto i = check.emplace_hint(check.begin(), 45);
   i = check.emplace_hint(i, 40);
   check.emplace_hint(i, 42);
   check.emplace_hint(i, 30);
   check.emplace_hint(check.begin(), 61);
   check.emplace_hint(check.begin(), 6);
   check.emplace_hint(check.begin(), 36);
   cout<<"List is : ";
   for (auto i = check.begin(); i != check.end(); i++)
      cout << *i << " ";
   return 0;
}

輸出

如果我們執行以上程式碼,它將生成以下輸出:

Elements are : 6 30 36 40 42 45 61

更新於: 2020-03-23

113 次瀏覽

開啟你的職業生涯

透過完成課程獲得認證

開始學習
廣告