方法是: 不用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不排序"的答案.

posted on 2009-04-04 19:51  pozen  阅读(5846)  评论(1编辑  收藏  举报