【发布时间】:2018-10-28 03:23:38
【问题描述】:
我正在尝试创建一个使用此标准对字符串向量进行排序的函数:
所有 strings= "NULL" 必须到达向量的末尾并从那里递减。其余的字符串必须保持它们的顺序。
例如给出:
{"Potato", "NULL", "NULL", "Charmander" , "Spaghetti", "NULL"}
输出应该是:
{"Potato","Charmander","Spaghetti","NULL","NULL","NULL"}
我试过了,但效果不佳:
bool comp(string i, string j){
if(i=="NULL"){return i>j;}
if (j=="NULL") {return i<j;}
提前致谢
【问题讨论】:
-
欢迎来到 stackoverflow.com。请花一些时间阅读the help pages,尤其是名为"What topics can I ask about here?" 和"What types of questions should I avoid asking?" 的部分。也请take the tour 和read about how to ask good questions。最后请学习如何创建Minimal, Complete, and Verifiable Example。
-
comp函数需要回答“i是否在j之前出现?”鉴于您的排序标准,这不是您的实施正在做的事情。 -
如果其他一切都需要保持其顺序,那么“从那里减少”是什么意思?所有
"NULL"s 应该比较相等;他们不可能减少。 -
由于我不确定您要做什么,所以这是评论而不是答案,但我认为
std::stable_sort可能对您有用。