Как использовать упорядоченный набор для строки?

В настоящее время я изучаю структуры данных. При решении проблемы получал TLE. Думал решить заказанным набором. Но я столкнулся с проблемой использования его для строк. Функция поиска дает мне временную сложность, поэтому я хочу использовать функцию find_by_order. Но это дает мне ошибку. Я хочу знать, где я допустил ошибку и какие изменения нужно внести, чтобы использовать функции для строк?

мой код

      #include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace __gnu_pbds;

#define ordered_set tree<string, null_type,less<string>, rb_tree_tag,tree_order_statistics_node_update>

bool check(string a,string b,ordered_set &s)
{
    swap(a[0],b[0]);
    cout<<*(s.find_by_order(a))<<endl;
    cout<<*(s.find_by_order(a))<<endl;
}

это дает мне эту ошибку

      **error**

C:\Users\HP-NPC\Desktop\C++\test 3.cpp|13|error: no matching function for call to '__gnu_pbds::tree<std::__cxx11::basic_string<char>, __gnu_pbds::null_type, std::less<std::__cxx11::basic_string<char> >, __gnu_pbds::rb_tree_tag, __gnu_pbds::tree_order_statistics_node_update>::find_by_order(std::__cxx11::string&)'|

0 ответов

Другие вопросы по тегам