Функция multiset key_comp () в C ++ STL
Std :: multiset :: key_comp () - это встроенная функция в C ++ STL, которая возвращает копию объекта сравнения, используемого контейнером. По умолчанию это объект less, который возвращает то же, что и оператор '<'. Это указатель на функцию или объект функции, который принимает два аргумента того же типа, что и элементы контейнера, и возвращает истину, если первый аргумент считается равным идти перед вторым в строгом слабом порядке, который он определяет, иначе - false. Два ключа считаются эквивалентными, если key_comp рефлексивно возвращает false (т. Е. Независимо от порядка, в котором ключи передаются в качестве аргументов).
Синтаксис:
key_compare multiset_name.key_comp ();
Параметр: эта функция не принимает никаких параметров.
Возвращаемые значения: функция возвращает копию объекта сравнения, используемого контейнером.
Примеры ниже иллюстрируют метод multiset :: key_comp ():
Пример 1:
// C++ program to illustrate the // multiset::key_comp() function #include <bits/stdc++.h> using namespace std; int main() { // Creating a multiset named m; multiset< int > m; multiset< int >::key_compare comp = m.key_comp(); // Inserting elements into multiset m.insert(10); m.insert(20); m.insert(30); m.insert(40); cout << "Multiset has the elements
" ; // Store key value of last element int highest = *m.rbegin(); // initializing the iterator multiset< int >::iterator it = m.begin(); // printing elements of all multiset do { cout << " " << *it; } while (comp(*it++, highest)); return 0; } |
Мультимножество имеет элементы 10 20 30 40
Пример 2:
// C++ program to illustrate the // multiset::key_comp() function #include <bits/stdc++.h> using namespace std; int main() { // Creating a multiset named m; multiset< int > m; multiset< int >::key_compare comp = m.key_comp(); // Inserting elements into multiset m.insert(100); m.insert(200); m.insert(300); m.insert(400); cout << "Multiset has the elements
" ; // Store key value of last element int highest = *m.rbegin(); // initializing the iterator multiset< int >::iterator it = m.begin(); // printing elements of all multiset do { cout << " " << *it; } while (comp(*it++, highest)); return 0; } |
Мультимножество имеет элементы 100 200 300 400