我有一个带有对象的有序容器(通常是std::vector
),比如说
Banana
Apple
Peach
以上定制订单。现在,对象经历了一些处理,可能已从容器中移除并重新插入,从而产生新的有序容器。
我已存储订单(Banana
- > 1 ,Apple
- > 2 ,Peach
- &gt ; 3 )分开,并希望在新订购的容器中重新建立该特定自定义订单。
此时对象已经存在(即我不能简单地按所需顺序插入)。
所以我不知道是不是自己用一些天真的算法过度交换,我想知道标准库中是否有一些算法可以用狡猾的方式使用..?
答案 0 :(得分:1)
std :: sort在标准库中,它非常狡猾!它可以按默认排序<操作员(你可以覆盖你的水果)或者你可以提供一个比较你的班级外部的比较器'实施
答案 1 :(得分:1)
嗯,伊戈尔写的几乎就是这个工作......
std::sort(fruits.begin(), fruits.end(),
[&](const std::string& a, const std::string& b)
{ return rank[a] < rank[b]; } );
其中rank为std::map<std::string, int>
,持有字符串到排名的映射