按int排序字符串向量

Wil*_*sby 1 c++ vector

我有一串单词,按相关性排名.相关性是存储在单独向量中的浮点数,但我认为两个向量的位置相互关联.

float floatTemp1, floatTemp2;
string stringTemp1, stringTemp2;
for(int m=0; m<PlayList.size()-1; m++){
    for(int i=0; i<PlayList.size(); i++){
        if(storedRelevance[i+1]>storedRelevance[i]){
            floatTemp1 = storedRelevance[i];
            floatTemp2 = storedRelevance[i+1];
            storedRelevance[i]= floatTemp2;
            storedRelevance[i+1] = floatTemp1;
            stringTemp1 = relevantPlays[i];
            stringTemp2 = relevantPlays[i+2];
            relevantPlays[i]= stringTemp2;
            relevantPlays[i+1]= stringTemp1;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

所以基本上,如果位置[1]中的向量的相关性大于[0]的相关性,它将交换相关性和字符串向量中的元素的位置.每次运行时都会出现分段错误.

Mat*_*son 11

我建议您使用a struct来存储关于单个事物的所有信息(例如,单词,它的相关性等),然后使用std::sort函数或functor比较相关性值.