set::insert (STL/CLR)
Dodaje elementy.
cliext::pair<iterator, bool> insert(value_type val);
iterator insert(iterator where, value_type val);
template<typename InIter>
void insert(InIter first, InIter last);
void insert(System::Collections::Generic::IEnumerable<value_type>^ right);
Parametry
pierwszy
Początek zakresu do wstawienia.ostatni
Koniec zakresu do wstawienia.prawo
Wyliczenie do wstawienia.Val
Wartość klucza do wstawienia.gdzie
Gdzie w pojemniku do wstawienia (tylko wskazówka).
Uwagi
Wstawia każdej z funkcji elementów członkowskich sekwencji określony przez pozostałe operandy.
Pierwsza funkcja Członkowskie usiłują wstawić element z wartością val, a następnie zwraca parę wartości X.Jeśli X.second ma wartość true, X.first wyznacza nowo wstawiony element; w przeciwnym razie X.first wyznacza element o równoważnej zamawiania już istnieje i nie nowy element jest wstawiany.Umożliwia to wstawianie pojedynczego elementu.
Druga funkcja Członkowskie wstawia element o wartości val, z wykorzystaniem where jako wskazówkę (w celu zwiększenia wydajności) i zwraca iterację opisująca nowo wstawiony element.Umożliwia to wstawianie pojedynczego elementu, która może przylegać do elementu, które znasz.
Trzeci funkcji składowej wstawia sekwencji [first, last).Umożliwia to wstawianie zero lub więcej elementów, skopiowane z innej sekwencji.
Czwarty funkcji członka wstawia sekwencji wyznaczone przez right.Umożliwia ona Wstaw sekwencję opisaną przez moduł wyliczający.
Każdy element wstawiania wymaga czasu proporcjonalna do logarytmu liczby elementów w kontrolowanej sekwencji.Wstawiania może wystąpić w amortyzowane stały czas, jednakże, biorąc pod uwagę wskazówkę, która wyznacza element przyległych do punktu wstawiania.
Przykład
// cliext_set_insert.cpp
// compile with: /clr
#include <cliext/set>
typedef cliext::set<wchar_t> Myset;
typedef Myset::pair_iter_bool Pairib;
int main()
{
Myset c1;
c1.insert(L'a');
c1.insert(L'b');
c1.insert(L'c');
// display initial contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write(" {0}", elem);
System::Console::WriteLine();
// insert a single value, unique and duplicate
Pairib pair1 = c1.insert(L'x');
System::Console::WriteLine("insert(L'x') = [{0} {1}]",
*pair1.first, pair1.second);
pair1 = c1.insert(L'b');
System::Console::WriteLine("insert(L'b') = [{0} {1}]",
*pair1.first, pair1.second);
for each (wchar_t elem in c1)
System::Console::Write(" {0}", elem);
System::Console::WriteLine();
// insert a single value with hint
System::Console::WriteLine("insert(begin(), L'y') = {0}",
*c1.insert(c1.begin(), L'y'));
for each (wchar_t elem in c1)
System::Console::Write(" {0}", elem);
System::Console::WriteLine();
// insert an iterator range
Myset c2;
Myset::iterator it = c1.end();
c2.insert(c1.begin(), --it);
for each (wchar_t elem in c2)
System::Console::Write(" {0}", elem);
System::Console::WriteLine();
// insert an enumeration
Myset c3;
c3.insert( // NOTE: cast is not needed
(System::Collections::Generic::IEnumerable<wchar_t>^)%c1);
for each (wchar_t elem in c3)
System::Console::Write(" {0}", elem);
System::Console::WriteLine();
return (0);
}
Wymagania
Nagłówek:<cliext/set>
Przestrzeń nazw: cliext