Функция multiset key_comp () в C ++ STL

Опубликовано: 30 Декабря, 2021

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
Хотите учиться на лучших видео и практических задачах, ознакомьтесь с базовым курсом C ++ для базового и продвинутого уровня C ++ и курсом C ++ STL для языка и STL. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию .