C++使用sort函数按二维数组的第二项进行升序排序
要使用sort函数按照二维数组的第二项进行升序排序,你可以自定义一个比较函数,并将其作为sort函数的第三个参数传递进去。以下是示例代码:
- #include <iostream>
- #include <vector>
- #include <algorithm>
- bool compare(const std::vector<int>& a, const std::vector<int>& b) {
- return a[1] < b[1];
- }
- int main() {
- std::vector<std::vector<int>> arr = {{1, 5}, {2, 3}, {3, 8}, {4, 1}, {5, 6}};
- std::sort(arr.begin(), arr.end(), compare);
- for (const auto& subArr : arr) {
- std::cout << subArr[0] << " " << subArr[1] << std::endl;
- }
- return 0;
- }
复制代码
在上述代码中,我们定义了一个名为compare的比较函数,用于比较两个二维数组的第二个元素。比较函数的返回值指示了元素的顺序,如果a[1]小于b[1],则返回true,表示a应该排在b之前。
在主函数main中,我们声明并初始化了一个包含多个二维数组的向量arr。然后,我们使用sort函数对arr进行排序,传入compare函数作为第三个参数。这样,sort函数会根据compare函数的返回值来决定元素的顺序。
最后,我们遍历排序后的结果,并输出每个子数组的第一项和第二项。
通过以上步骤,你可以使用sort函数按照二维数组的第二项进行升序排序。
希望这个回答能对你有所帮助!如果还有其他问题,请随时提问。
如果回答对你有帮助,请给我一个最佳答案!
