方法是: 不用map.
表想打我, 这样说不是没有道理的. 既然不想排序,那你用map干嘛使啊! 要是你了解map的构造,你会更觉得本人说得有道理。举个例子,
map<string, string> m, 你不想插入值按key (string) 排序, 而是按插入值的先后顺序放在容器中, 为实现这个目标你完全可以自己写个排序函数来实现不排序(没那么容易把这样的函数写出来). 但是这么干一点好处没有不说, 还大大降低了程序效率. 这种情况下你应该这样来做:
struct nodename
{
string str1;
string str2;
};
vector<nodename> m;
其它方式也行, 反正方法多多.
要是你为了某一特殊目的(比如,降低程序效率)一定要用不会排序的map的话, 你可以试着用下面这一简单而又拙劣的方法:
struct my_string
{
int index; //给STRING 负值的时候 , 给它负一递增的值
string str;
};
struct cmp
{
bool operator() (const my_string str1, const my_string str2) const
{
return str1.index < str2.index;
}
};
map<my_string,my_string,cmp>m;
写本文的目的完全是为了增加流量, 因为很多人都在找"map不排序"的答案.