共用方式為


unordered_set::insert

加入項目。

std::pair<iterator, bool> insert(const value_type& val);
iterator insert(iterator where, const value_type& val);
template<class InIt>
    void insert(InIt first, InIt last);
template<class ValTy>
    pair<iterator, bool> insert(ValTy&& val);
template<class ValTy>
    iterator insert(const_iterator where, ValTy&& val);

參數

參數

描述

InIt

列舉型別。

ValTy

就地建構函式引數的型別。

first

插入範圍的開頭。

last

插入範圍的結尾。

val

要插入的值。

where

其中的外掛程式的容器 (僅限檔案)。

備註

第 10% 成員函式來判斷項目 X 是否存在之索引鍵與相等排序至該 val的序列。 否則,會建立這類項目 X 並使用將它初始化 val。 函式會判斷指定的 XIterator where 。 如果插入之後,函式會傳回 std::pair(where, true)。 否則,會傳回 std::pair(where, false)。

第二 + 成成員函式傳回 insert(val).first,使用 where 做為在受控制序列中的起始位置搜尋插入點。 (插入可能有些快速地,可能會發生,如果插入點緊接在或之後 where之前)。

第三 + 成成員函式會呼叫 insert(*where)插入項目值序列,範圍 [first, last)的每 where 的,否則為。

最後兩個成員函式一般作業的前兩個相同,但是有一點例外,就是 val 用來建構要插入的值。

如果例外狀況在單一項目的插入擲回時,容器會維持不變,而且會重新擲回例外狀況。 如果例外狀況在多個項目的外掛程式時,所擲回的子穩定保留,但未指定的狀態和會重新擲回例外狀況。

範例

// std_tr1__unordered_set__unordered_set_insert.cpp 
// compile with: /EHsc 
#include <unordered_set> 
#include <iostream>
#include <string> 
 
typedef std::unordered_set<char> Myset; 
int main() 
    { 
    Myset c1; 
 
    c1.insert('a'); 
    c1.insert('b'); 
    c1.insert('c'); 
 
// display contents " [c] [b] [a]" 
    for (Myset::const_iterator it = c1.begin(); 
        it != c1.end(); ++it) 
        std::cout << " [" << *it << "]"; 
    std::cout << std::endl; 
 
// insert with hint and reinspect 
    Myset::iterator it2 = c1.insert(c1.begin(), 'd'); 
    for (Myset::const_iterator it = c1.begin(); 
        it != c1.end(); ++it) 
        std::cout << " [" << *it << "]"; 
    std::cout << std::endl; 
 
// insert range and inspect 
    Myset c2; 
 
    c2.insert(c1.begin(), c1.end()); 
    for (Myset::const_iterator it = c2.begin(); 
        it != c2.end(); ++it) 
        std::cout << " [" << *it << "]"; 
    std::cout << std::endl; 
 
// insert with checking and reinspect 
    std::pair<Myset::iterator, bool> pib = 
        c1.insert('e'); 
    std::cout << "insert(['a',]) success == " 
        << std::boolalpha << pib.second << std::endl; 
    pib = c1.insert('a'); 
    std::cout << "insert(['a',]) success == " 
        << std::boolalpha << pib.second << std::endl; 
    for (Myset::const_iterator it = c1.begin(); 
        it != c1.end(); ++it) 
        std::cout << " [" << *it << "]"; 
    std::cout << std::endl; 

// The templatized versions move constructing elements
    unordered_set<string> c3, c4;
    string str1("a"), str2("b");

    c3.insert(move(str1));
    cout << "After the move insertion, c3 contains: "
        << *c3.begin() << endl;

    c4.insert(c4.begin(), move(str2));
    cout << "After the move insertion, c4 contains: "
        << *c4.begin() << endl;
 
     return (0); 
    } 
 
  

需求

標題: <unordered_set>

命名空間: std

請參閱

參考

<unordered_set>

unordered_set Class