二维vector怎么给每一个vector排序
时间: 2024-09-06 08:02:32 浏览: 53
在C++中,二维`std::vector`实际上是由许多一维`std::vector`组成的,每个内部向量可以独立排序。如果你想要对二维`vector`的所有元素(通常是其内部的一维向量)进行排序,你可以先遍历整个二维数组,然后对每一行的向量分别进行排序。
下面是一个简单的示例,假设你的二维`vector`存储的是整数:
```cpp
#include <iostream>
#include <vector>
#include <algorithm> // 包含sort函数
// 如果二维向量是动态大小的,可以使用这样的结构
struct MyVector {
std::vector<int> innerVec;
};
void sort2DVector(std::vector<MyVector>& vec) {
for (auto& row : vec) { // 遍历每一行
std::sort(row.innerVec.begin(), row.innerVec.end()); // 对内部向量排序
}
}
int main() {
std::vector<MyVector> my2DVec = {{4, 2, 7}, {1, 9, 3}, {5, 8, 6}}; // 示例二维向量
sort2DVector(my2DVec);
for (const auto& row : my2DVec) {
for (const int &val : row.innerVec) {
std::cout << val << " ";
}
std::cout << "\n";
}
return 0;
}
```
在这个例子中,我们首先定义了一个名为`MyVector`的结构体,包含一个`std::vector<int>`作为成员。接着,我们在`sort2DVector`函数中使用范围for循环遍历每一行,并直接对内部向量调用`std::sort`函数。
阅读全文