vector<vector<Point>>跟vector<Point>
时间: 2024-02-16 18:57:49 浏览: 89
vector<vector<Point>>和vector<Point>是C++中的两种不同的数据结构。
vector<Point>是一个一维向量,其中的元素是Point类型的对象。可以通过push_back()函数向vector<Point>中添加元素,也可以通过下标访问和修改元素。
vector<vector<Point>>是一个二维向量,其中的元素是vector<Point>类型的对象。可以通过push_back()函数向vector<vector<Point>>中添加元素,也可以通过双重下标访问和修改元素。
下面是一个示例代码,演示了vector<vector<Point>>和vector<Point>的使用:
```cpp
#include <iostream>
#include <vector>
struct Point {
int x;
int y;
};
int main() {
// 创建一个vector<Point>对象
std::vector<Point> points;
// 添加元素到vector<Point>中
Point p1 = {1, 2};
Point p2 = {3, 4};
points.push_back(p1);
points.push_back(p2);
// 访问vector<Point>中的元素
std::cout << "vector<Point> elements:" << std::endl;
for (int i = 0; i < points.size(); i++) {
std::cout << "Point " << i << ": (" << points[i].x << ", " << points[i].y << ")" << std::endl;
}
// 创建一个vector<vector<Point>>对象
std::vector<std::vector<Point>> pointVectors;
// 添加元素到vector<vector<Point>>中
pointVectors.push_back(points);
// 访问vector<vector<Point>>中的元素
std::cout << "vector<vector<Point>> elements:" << std::endl;
for (int i = 0; i < pointVectors.size(); i++) {
std::cout << "Vector " << i << ":" << std::endl;
for (int j = 0; j < pointVectors[i].size(); j++) {
std::cout << "Point " << j << ": (" << pointVectors[i][j].x << ", " << pointVectors[i][j].y << ")" << std::endl;
}
}
return 0;
}
```
输出结果:
```
vector<Point> elements:
Point 0: (1, 2)
Point 1: (3, 4)
vector<vector<Point>> elements:
Vector 0:
Point 0: (1, 2)
Point 1: (3, 4)
```
阅读全文