c++ - 按内部元素对 std::vector 进行排序?

标签 c++

我目前有一个 std::vector ,其中包含 std::vector 的 double 。我想按双 vector 的第二个元素对其进行排序。前任: 我不是按 MyVec[0] 或 myvec[1] 排序,而是根据 myvec[0][1] myvec[1][1] 对 myVec[0] 和 myvec[1] 进行排序。基本上按包含的值排序,而不是其中的对象。

因此,如果 myvec[0][1] 小于 myvec[1][1],则 myvec[0] 和 myvec[1] 将交换。 谢谢

最佳答案

只写比较器:

bool my_comparator(const std::vector<double>& lhs, const std::vector<double>& rhs)
{
  assert(lhs.size() >= 2 && rhs.size() >= 2);
  return lhs[1] < rhs[1];
}
...
std::sort(big_vector.begin(), big_vector.end(), my_comparator);

最好写一个仿函数而不是一个函数,但概念是一样的。

关于c++ - 按内部元素对 std::vector 进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2993712/

相关文章:

c++ - 如何获取 %AppData% 路径作为 std::string?

c++ - 如何重载 std::cout << std::endl?

javascript - 是否可以在 JavaScript 应用程序中使用 C++ 库

c++ - 为什么 visual studio 2010 寻找 __thiscall 而不是 __cdecl 调用约定?

Windows 上的 c++ MIDI 音序器和 smf 加载器库

c++ - 设置地址后是否需要删除指针?

c++ - 学习OpenGL时找不到glClear

c++ - 为什么这个 const 说明符有未指定的行为?

c++ - 在从全局对象调用的静态库函数中使用 std::vector 时调试断言失败

C++ (gcc) 预处理器宏 : Automatic function generation - OpenGL Shader "Swizzle" Syntax