问题:我需要按照特定的顺序对字符串向量进行排序.假设我们有一个常量向量或具有确切顺序的数组:
vector<string> correctOrder = {"Item3", "Item1", "Item5", "Item4", "Item2"};
Run Code Online (Sandbox Code Playgroud)
接下来,我们有一个动态的传入向量,它将具有相同的项目,但它们可能是混合的而且数量较少.
vector<string> incommingVector = {"Item1", "Item5", "Item3"};
Run Code Online (Sandbox Code Playgroud)
所以我需要incomming像第一个向量一样对向量进行排序correctOrder,结果必须是:
vector<string> sortedVector = {"Item3", "Item1", "Item5"};
Run Code Online (Sandbox Code Playgroud)
我认为正确的顺序可能以不同的方式表示,但无法弄清楚.有谁可以帮助我吗?
我必须对结构的矢量进行排序.假设结构有两个成员:
Struct game
{
string name;
int rating;
};
Run Code Online (Sandbox Code Playgroud)
所以我创建了一个std::vector<game>游戏,并通过评级对它们进行简单排序.
std::sort(games.begin(),games.end(), [](game& info1, game& info2)
{
return info1.rating > info2.rating;
});
Run Code Online (Sandbox Code Playgroud)
到目前为止一切都还好.问题是如果所有游戏的评级值都为0,则会混合.简单地说,我只需要对等级大于零的元素进行排序.我们举个例子:
所有游戏都按照字母顺序和等级0按名称推入向量,当触发排序时,字母顺序被违反.
排序前的示例:
"A_Game","B_Game","C_Game","E_Game","G_Game",等.(继续与所有下一字母)
排序后(所有游戏都评级为0):
"G_Game","S_Game","P_Game","M_Game","L_Game","I_Game",等.
我只需要对这些评级大于0的游戏进行排序.提前感谢.