метод multiset value_comp () в C ++ STL

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

Std :: multiset :: value_comp - это встроенная функция в C ++ STL, которая возвращает копию объекта сравнения, используемого контейнером. По умолчанию это объект less, который возвращает то же, что и оператор '<'. Это указатель на функцию или объект функции, который принимает два аргумента того же типа, что и элементы контейнера, и возвращает истину, если первый аргумент считается идущим перед вторым в строгом слабом порядке, который он определяет, или ложь в противном случае. Два ключа считаются эквивалентными, если key_comp возвращает false рефлексивно (т. е. независимо от порядка, в котором ключи передаются в качестве аргументов).

Синтаксис:

value_compare multiset_name.value_comp () 

Параметры: эта функция не принимает никаких параметров.

Возвращаемое значение: функция возвращает копию объекта сравнения, используемого контейнером.

Примеры ниже иллюстрируют вышеуказанный метод:

Пример 1:

// C++ program to illustrate the
// multiset::value_comp() function
#include <bits/stdc++.h>
using namespace std;
int main()
{
// Creating a multiset named m;
multiset< int > m;
multiset< int >::value_compare
comp
= m.value_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::value_comp() function
#include <bits/stdc++.h>
using namespace std;
int main()
{
// Creating a multiset named m;
multiset< int > m;
multiset< int >::value_compare
comp
= m.value_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 и многому другому, см. Полный курс подготовки к собеседованию .
C++