Как использовать упорядоченный набор для строки?
В настоящее время я изучаю структуры данных. При решении проблемы получал 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&)'|