Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sorting C++;如何使用lambda函数对唯一的ptr向量进行动态排序?_Sorting_Lambda_C++11_Unique Ptr - Fatal编程技术网

Sorting C++;如何使用lambda函数对唯一的ptr向量进行动态排序?

Sorting C++;如何使用lambda函数对唯一的ptr向量进行动态排序?,sorting,lambda,c++11,unique-ptr,Sorting,Lambda,C++11,Unique Ptr,所以我有一个std::vector vec,我试图动态地对它进行排序,因为Derived1和Derivedn之间存在逻辑比较(Derivedn总是>Derivedn-1>…>Derived1)(假设n=10左右),并且每个Derivedx都有自己与Derivedx的不同比较。例如,假设10位整数>9位整数>1位整数,但在每个派生类中53>32(但我没有对整数排序) 所以我可以这样做: std::sort(vec.begin(), vec.end(), [](std::unique_ptr<

所以我有一个
std::vector vec
,我试图动态地对它进行排序,因为Derived1和Derivedn之间存在逻辑比较(Derivedn总是>Derivedn-1>…>Derived1)(假设n=10左右),并且每个Derivedx都有自己与Derivedx的不同比较。例如,假设10位整数>9位整数>1位整数,但在每个派生类中53>32(但我没有对整数排序)

所以我可以这样做:

std::sort(vec.begin(), vec.end(), 
[](std::unique_ptr<Base>& const a, std::unique_ptr<Base>& const b){
  return *a<*b;}
排序(vec.begin(),vec.end(), [](标准::唯一\u ptr&常数a,标准::唯一\u ptr&常数b){
返回*A < P>查看第31章,使函数相对于史葛迈尔斯中的多个对象虚拟,更有效的C++ + < /P>
另外,试着在谷歌上搜索短语double dispatch和multiple dispatch。

嗯……我可能会使用覆盖
操作符的方法。如果multimethods提案能够将其纳入语言中,那就太好了。