数据结构的 C++ 排序算法

标签 c++ sorting

<分区>

我想用STL排序算法对一些数进行排序,但又想记住它们的初始位置。 我有这样的数据结构:

struct Numbers {
     int position;
     int value;
};

我创建了一个这样的数字 vector :

vector<Numbers> a;

如何使用STL排序算法,根据值对数据结构进行排序?

最佳答案

你也可以使用仿函数:

struct comp {

bool operator()(const Numbers &lhs, const Numbers& rhs) const{

  lhs.value < rhs.value;
}

};

std::sort(a.begin(),a.end(), comp());

在 C++11 中,您可以使用 lambda 函数:

std::sort( a.begin() , a.end() , 
          [](const Numbers& lhs , const Numbers& rhs) 
           { return lhs.value < rhs.value; } 
          );

关于数据结构的 C++ 排序算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19620832/

相关文章:

c++ - 将图像转换为有限大小的调色板的好算法是什么

c++ - C++ 中未声明的标识符(错误 C2065)

java - 根据用户在 Java 8 中选择的属性对列表进行动态排序

java - 如何根据另一个ArrayList对ArrayList进行排序?

c++ - 为什么 GetSystemMetrics() 返回这些值?

c++ - 将 static_cast 与 boost::bind 结合使用

c - C 语言的基本插入排序算法(TDM-GCC 编译器)

sorting - 更改 jqgrid 上的默认排序

c++ - 编译 C++ 代码时出错?

c - K&R 第 5.11 节中的排序程序