【STL】unordered_map&set
一般来说,如何优化时间复杂度?把map&set改成unordered_map&set。
(Useless) What You Should Know
template<typename T>
void get_type(const T& x) {
system((string("c++filt -t ") + typeid(x).name()).c_str()); }
其中typeid
需要头文件#include<typeinfo>
。
这个可以显示一个东西的(完整)类型。例如:
unordered_map<vector<priority_queue<int> >, queue<stack<map<unsigned long long, long double> > > >m;
int main() {
get_type(m); }
输出:
std::tr1::unordered_map<std::vector<std::priority_queue<int, std::vector<int, std::allocator<int> >, std::less<int> >,std::allocator<std::priority_queue<int, std::vector<int, std::allocator<int> >, std::less<int> > > >,std::queue<std::stack<std::map<unsigned long long, long double, std::less<unsigned long long>, std::allocator<std::pair<unsigned long long const, long double> > >, std::deque<std::map<unsigned long long, long double,std::less<unsigned long long>, std::allocator<std::pair<unsigned long long const, long double> > >,std::allocator<std::map<unsigned long long, long double, std::less<unsigned long long>, std::allocator<std::pair<unsigned long long const, long double> > > > > >, std::deque<std::stack<std::map<unsigned long long, long double, std::less<unsigned long long>, std::allocator<std::pair<unsigned long long const, long double> >>, std::deque<std::map<unsigned long long, long double, std::less<unsigned long long>, std::allocator<std::pair<unsigned long long const, long double> > >, std::allocator<std::map<unsigned long long, long double, std::less<unsigned long long>, std::allocator<std::pair<unsigned long long const, long double> > > > > >, std::allocator<std::stack<std::map<unsigned long long, long double, std::less<unsigned long long>,std::allocator<std::pair<