【发布时间】:2015-03-10 09:27:53
【问题描述】:
我有一个带有对象的有序容器(通常是 std::vector)
BananaApplePeach
及以上自定义订单。现在对象经过一些处理,可能已从容器中移除并重新插入,从而产生一个新的有序容器。
我已经存储了订单(Banana -> 1, Apple -> 2, Peach -> 3 ) 并希望在新订购的容器中重新建立特定的自定义订单。
此时对象已经存在(即我不能简单地按所需顺序插入)。
因此,与其用我自己的一些天真的算法过度交换,我想知道标准库中是否有一些算法我可以巧妙地使用..?
【问题讨论】:
-
为什么不将对象留在容器中并复制出容器呢? vector 返回一个您可以处理的引用。
-
您是否正在寻找类似
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>保存您的字符串到排名的映射? -
@IgorTandetnik 干杯 - 完成了这项工作..我自己也可以想到的..
标签: c++ c++11 vector standard-library