要按列對C++二維數組進行排序,可以使用std::sort函數和自定義比較函數來完成。
首先,假設二維數組為arr,有m行n列。我們需要定義一個自定義的比較函數cmp,用于比較兩個元素。
bool cmp(const vector<int>& a, const vector<int>& b) {
return a[col] < b[col];
}
其中,col表示要按照哪一列進行排序。比較函數的返回值為true表示a應該在b之前,為false表示a應該在b之后。
然后,我們可以在主函數中使用std::sort函數對二維數組按列進行排序。假設要按第i列進行排序,則需要將col設置為i。
int main() {
int m = arr.size(); // 行數
int n = arr[0].size(); // 列數
int col = i; // 按第i列進行排序
std::sort(arr.begin(), arr.end(), cmp);
// 輸出排序后的二維數組
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
std::cout << arr[i][j] << " ";
}
std::cout << std::endl;
}
return 0;
}
這樣,就可以按列對二維數組進行排序了。請注意,這里的arr是一個二維向量,它的行和列可以根據實際情況進行修改。