我不明白这段代码如何对这个python list()进行排序,以及如何在C++;带向量 我有一个C++向量,我需要像这个Python列表排序: sorted(self.weirdest, key=lambda tup: (tup[0], tup[-1])) self.weirdest.sort(key=lambda elem: abs(elem[1])) self.weirdest.reverse()

我不明白这段代码如何对这个python list()进行排序,以及如何在C++;带向量 我有一个C++向量,我需要像这个Python列表排序: sorted(self.weirdest, key=lambda tup: (tup[0], tup[-1])) self.weirdest.sort(key=lambda elem: abs(elem[1])) self.weirdest.reverse(),python,c++,Python,C++,但是我不明白它在干什么,请有人给我解释一下,谢谢 ps:如果有帮助的话,这是一个最奇怪的温度值列表。第一行没有任何作用。它返回一个被丢弃的排序列表 第二行根据每个条目中第二个元素的绝对值对列表进行排序 最后一行反转列表 在C++中,这样的事情可以工作: std::sort(weirdest.begin(), weirdest.end(), [](const auto& a, const auto& b) { return abs(a

但是我不明白它在干什么,请有人给我解释一下,谢谢


ps:如果有帮助的话,这是一个最奇怪的温度值列表。

第一行没有任何作用。它返回一个被丢弃的排序列表

第二行根据每个条目中第二个元素的绝对值对列表进行排序

最后一行反转列表

在C++中,这样的事情可以工作:

std::sort(weirdest.begin(), weirdest.end(), 
          [](const auto& a, const auto& b) {
             return abs(a[1]) < abs(b[1]);
          });

std::reverse(weirdest.begin(), weirdest.end());
std::sort(最奇怪的开始(),最奇怪的结束(),
[](常数自动与a、常数自动与b){
返回abs(a[1])
您有什么具体问题吗?像这样的问题太宽泛了。你能给你的问题添加一个输入和预期输出的例子吗?编辑:我猜排序的是这个(不是自编的?):是的,排序的(self.weirdest,key=lambda tup:(tup[0],tup[-1])和self.weirdest.sort(key=lambda elem:abs(elem[1])做什么GooSeRoTeD将考虑列表中的任何元素的排序的第一个和最后一个项目进行排序。但是您需要将其存储为排序后返回一个新的列表并排序就位排序。如果您使用<代码> > /代码>而不是<代码> @肖恩,我希望保持在Python代码的附近。您还可以在python中传递reverse=True以获得相同的结果。似乎无法做到这一点,我的向量是std::vector,我在第[]行(const auto&a,const auto&b))上得到了它{:错误:未忽略void值,因为它应该具有been@FarbodAhmadian总是喜欢现有的图书馆。当你考虑写你自己的时候,你需要一个证据来证明这个改变会显著地改善一些东西;B)好的推理,为什么现有的解决方案不能给你带来好的表现。我不知道你的代码的复杂性和潜在的新错误。