【问题标题】:How to sort any vector by value?如何按值对任何向量进行排序?
【发布时间】:2021-12-22 06:45:25
【问题描述】:

如何在c++中按绝对值对向量进行排序?

假设一个向量 {-10, 12, -20, -8, 15}

输出应该是 {-8, -10, 12, 15, -20}

【问题讨论】:

  • 你能澄清一下:你的意思是按 absolute 值排序吗?事实上,我看不出如何以 any 方式对原始向量进行排序以提供该输出。
  • 以及vector 中的1 发生了什么?

标签: c++ sorting vector stl


【解决方案1】:

我的猜测是您想按绝对值对向量进行排序。 您可以通过将 lambda 传递给它,以任何您想要的方式对带有 std::sort 的向量进行排序。 整数的绝对值可以使用std::abs来计算。

std::sort(std::begin(vec), std::end(vec),
          [](const auto& lhs, const auto& rhs){
              return std::abs(lhs) < std::abs(rhs);
          });

【讨论】:

    猜你喜欢
    • 2022-01-13
    • 2022-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-02
    • 1970-01-01
    • 2012-02-19
    • 2011-02-15
    相关资源
    最近更新 更多