mrChest's blog

By mrChest, 3 weeks ago, In Russian

Почему-то данный код выводит 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))), я хочу разобраться в этом

  • Vote: I like it
  • 0
  • Vote: I do not like it