我是一名有用的助手,可以翻译文本。
我遇到了一个编程问题,涉及使用
例如,假设我有一个二维向量。
我知道为了指定
现在你可以看到我面临的问题,如何访问矩阵内的特定元素,在我的情况下是第三列元素,并将它们与
我遇到了一个编程问题,涉及使用
algorithm
库中的std::sort
来按所需标准对2D向量(矩阵)进行排序。例如,假设我有一个二维向量。
1,8,3
1,9,1
1,4,2
^
我希望您能将其按照第三列(例如增长标准)进行排序,以便在排序后,我可以得到一个矩阵:
1,9,1
1,4,2
1,8,3
^
我知道为了指定
std::sort
中的排序条件,需要在std::sort
中发送第三个函数。如果是1D vector
,这不是问题。我会在std::sort
内部创建一个带有2个参数的lambda,比较它们并返回true/false。现在你可以看到我面临的问题,如何访问矩阵内的特定元素,在我的情况下是第三列元素,并将它们与
std::sort
进行比较?#include <iostream>
#include <vector>
#include <algorithm>
void printMatrix(std::vector<std::vector<int>> m) {
for(int i = 0; i < m.size(); i++) {
for(int j = 0; j < m[i].size(); j++) {
std::cout << m[i][j] << " ";
}
std::cout << std::endl;
}
}
int main() {
std::vector<std::vector<int>> m{
{1,8,3},
{1,9,1},
{1,4,2}
};
std::sort(m.begin(), m.end(), [](int a, int b) { // error
// ???
});
printMatrix(m);
return 0;
}
我不想使用其他外部库来解决这个问题。
非常感谢任何帮助!:)