小编Ros*_*nev的帖子

如何按特定的预定顺序对字符串向量进行排序?

问题:我需要按照特定的顺序对字符串向量进行排序.假设我们有一个常量向量或具有确切顺序的数组:

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)

我认为正确的顺序可能以不同的方式表示,但无法弄清楚.有谁可以帮助我吗?

c++ sorting string algorithm vector

8
推荐指数
2
解决办法
253
查看次数

矢量排序算法,只对大于0的元素进行排序

我必须对结构的矢量进行排序.假设结构有两个成员:

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的游戏进行排序.提前感谢.

c++ sorting algorithm vector

4
推荐指数
2
解决办法
153
查看次数

标签 统计

algorithm ×2

c++ ×2

sorting ×2

vector ×2

string ×1