如何根据原始向量中元素的位置对C ++向量的副本进行排序?

时间:2015-04-26 13:32:52

标签: c++ sorting vector

我的班上有这张地图:

buffer[0]='s'
buffer[1]='e'
buffer[2]='e'
buffer[3]='\0' 

我已经将矢量复制到另一个临时的矢量,我想根据该对中的第一个值进行排序。如果在对中有两个具有相同第一个值的元素,我想通过它们在原始向量中的位置来确定位置。但是,如果我想查看原始向量,静态向量排序函数将不允许我这样做。你能告诉我怎么做吗? 感谢

代码:

map<string,vector<pair<string,int>>> assessedTest__name_result;

2 个答案:

答案 0 :(得分:3)

std :: stable_sort就是答案

std::stable_sort(tmpVec.begin(),tmpVec.end())

如果您有自己的比较函数vecIdSort,请执行此操作

std::stable_sort (tmpVec.begin(),tmpVec.end(),vecIdSort);

答案 1 :(得分:-2)

我使用了lambda函数,但它确实有效。