vector二维数组排序
时间: 2023-02-25 17:16:43 浏览: 69
可以使用 STL 库中的 sort 函数对 vector 二维数组进行排序。你需要自定义一个比较函数,告诉 sort 函数如何比较两个元素。然后,把这个比较函数作为参数传递给 sort 函数。举个例子:
```
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
bool compare(const vector<int> &a, const vector<int> &b) {
return a[0] < b[0];
}
int main() {
vector<vector<int>> arr = {{3, 2, 1}, {6, 5, 4}, {9, 8, 7}};
sort(arr.begin(), arr.end(), compare);
for (int i = 0; i < arr.size(); i++) {
for (int j = 0; j < arr[i].size(); j++) {
cout << arr[i][j] << " ";
}
cout << endl;
}
return 0;
}
```
该代码按照二维数组中第一维的值从小到大进行排序。
相关问题
c++vector二维数组sort排序
在C++中,对于二维向量(vector)进行排序,可以使用sort函数来实现。根据引用和引用的内容,我们可以使用lambda表达式作为sort函数的第三个参数来自定义排序规则。下面是一个示例代码:
```c++
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
vector<vector<int>> test = {{1, 4}, {3, 2}, {2, 6}, {5, 1}};
sort(test.begin(), test.end(), [](const vector<int>& a, const vector<int>& b){
return a < b<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>
vector二维数组去重
对于vector二维数组的去重,可以使用sort和unique结合的方法。具体步骤如下:
1. 对二维vector进行排序,使得相同的元素相邻。
2. 使用unique函数去除相邻的重复元素,返回去重后的尾部迭代器。
3. 使用erase函数将去重后的尾部迭代器之后的元素删除。
代码示例:
```
vector<vector<int>> nums = {{1, 2}, {2, 5, 8, 9}, {8, 6, 1}};
for(auto& row : nums) {
sort(row.begin(), row.end()); // 对每一行进行排序
auto iter = unique(row.begin(), row.end()); // 去重
row.erase(iter, row.end()); // 删除重复元素
}
```