Почему-то данный код выводит 1:
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
#define ordered_multiseti tree<int,null_type,less_equal<int>,rb_tree_tag,tree_order_statistics_node_update>
using namespace std;
using namespace __gnu_pbds;
main(){
ordered_multiseti st;
st.insert(13);
st.insert(15);
cout << (st.find(13)==st.end());
}
Пробовал C++11 и C++17, как ISO, так и GNU.
Бред какой-то. С ordered_set всё нормально. Кто-нибудь знает почему так?
P. S. Не надо говорить, что можно использовать (st.order_of_key(13) == -1 ? st.end() : st.find_by_order(st.order_of_key(13)))
, я хочу разобраться в этом
так less_equal компаратор вообще сломанный, например вот, лучше юзать less<pair<int, int>> вместо less_equal, второй параметр пары будет просто количество элемента и его можно например в мапчике поддерживать
Спасибо