vector<Point<T> *> vertices;访问vertices[0]的数据
时间: 2024-02-11 15:06:33 浏览: 29
由于 `vertices` 是一个存储 `Point<T> *` 类型指针的向量,访问 `vertices[0]` 实际上是访问该向量中第一个指针的地址,而非 `Point<T>` 的实际数据。如果要访问该指针所指向的 `Point<T>` 数据,可以使用箭头运算符 `->`,如下所示:
```cpp
Point<T>* p = vertices[0]; // 获取第一个指针
T x = p->x; // 访问该指针所指向的 Point<T> 对象的 x 坐标
T y = p->y; // 访问该指针所指向的 Point<T> 对象的 y 坐标
```
如果你需要直接访问 `vertices[0]` 所指向的 `Point<T>` 对象而非指针,可以使用解引用运算符 `*`,如下所示:
```cpp
Point<T>& p = *(vertices[0]); // 获取第一个指针所指向的 Point<T> 对象
T x = p.x; // 访问该 Point<T> 对象的 x 坐标
T y = p.y; // 访问该 Point<T> 对象的 y 坐标
```
但需要注意的是,使用指针可以避免对象的复制,提高程序效率。
相关问题
vector<Point<T> *> vertices; 如何访问vertices中point成员
可以使用箭头运算符 "->" 来访问 vertices 中的 Point 对象的成员变量。示例代码如下:
```
// 假设 vertices 中已经有了 Point 对象的指针
Point<T> *p = vertices[0]; // 获取 vertices 中第一个 Point 对象的指针
T x = p->x; // 访问 Point 对象的 x 成员变量
T y = p->y; // 访问 Point 对象的 y 成员变量
```
需要注意的是,访问 Point 对象的成员变量之前,需要保证该对象已经被创建并且指针已经被存储在了 vertices 中。
vector<Point<T>*> vertices;什么意思
这段代码定义了一个名为 `vertices` 的变量,它是一个指向 `Point<T>` 类型指针的向量(vector)。`Point<T>` 是一个泛型类,`T` 是一个占位符,表示可以是任何;
cout << " XX" << endl;
cout << " XX" << endl;
cout << " XX" << endl;
cout << " XX" << endl;
cout << " XX" << endl;
cout << " XX" << endl;
cout << " XX" << endl;
cout << " XX" << endl;
cout << " XXXX" << endl;
cout << " XXXXXX" << endl;
cout << " XXXXXXXX" << endl;
cout << " XXXXXXXXXX" << endl;
cout << " XXXXXXXXXXXX" << endl;
cout << " XXXXXXXXXXXXXX" << endl;
cout << " XXXXXXXXXXXXXXXX" << endl;
cout << " XXXXXXXXXXXXXXXXXX" << endl;
cout << " XXXXXXXXXXXXXXXXXXXX" << endl;
cout << " XXXXXXXXXXXXXXXXXXXXXX" << endl;
cout << " XXXXXXXXXXXXXXXXXXXXXXXX" << endl;
cout << " XXXXXXXXXXXXXXXXXXXXXXXXXX" << endl;
cout << " XXXXXXXXXXXXXXXXXXXXXXXXXXXX" << endl;
cout << " XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" << endl;
cout << " XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" << endl;
cout << " XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" << endl;
cout << " XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" << endl;
cout << " XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" << endl;
cout << " XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" << endl;
cout << " XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" << endl;
cout << " XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" << endl;
cout << " XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" << endl;
cout << " XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" << endl;
cout << " XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" << endl;
cout << " XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" << endl;
cout << " XXXXXXXXXXXXXXXXXXXXXXXXXXXX" << endl;
cout << " XXXXXXXXXXXXXXXXXXXX" << endl;
cout << " XXXXXXXXXXXX" << endl;
cout << " XXXX" << endl;
cout << " X" << endl;
cout << " X" << endl;
cout << " X" << endl;
cout << " X" << endl;
cout << " X" << endl;
cout << " X" << endl;
cout << " X" << endl;
cout << " X" << endl;
cout << " X" << endl;
cout << " X" << endl;
cout << " X" << endl;
cout << " X" << endl;
cout << " X" << endl;
cout << " X" << endl;
cout << " X" << endl;
cout << " X" << endl;
cout << " X" << endl;
cout << " X" << endl;
cout << " X" << endl;
cout << " X" << endl;
cout << " X" << endl;
cout << " X" << endl;
cout << " X" << endl;
cout << " X" << endl;
cout << " X" << endl;
cout << " X" << endl;
cout << " X" << endl;
cout << " X" << endl;
cout << " X" << endl;
cout << " X" << endl;
cout << " X" << endl;
cout << " X" << endl;
cout << " X" << endl;
cout << " X" << endl;
cout << " X" << endl;
cout << " X" << endl;
cout << " X" << endl;
cout << " X" << endl;
cout << " X" << endl;
cout << " X" << endl;
cout << " X" << endl;
cout << " X" << endl;
cout << " X" << endl;
cout << " X" << endl;
cout << " X" << endl;
cout << " X" << endl;
cout << " X" << endl;
cout << " X" << endl;
cout << " X" << endl;
cout << " X" << endl;
cout << " X" << endl;
cout << " X" << endl;
cout << " X" << endl;
cout << " X" << endl;
cout << " X" << endl;
cout << " X" << endl;
cout << " X" << endl;
cout << " X" << endl;
cout << " X" << endl;
cout << " X" << endl;
cout << " X" << endl;
cout << " X" << endl;
cout << " X" << endl;
cout << " X" << endl;
cout << " X" << endl;
cout << " X" << endl;
cout << " X" << endl;
cout << " X" << endl;
cout << " X" << endl;
cout << " X" << endl;
cout << " X" << endl;
cout类型。这个向量中存储的是 `Point<T>` 类型的指针,而不是实际的对象。 << " X" << endl;
cout << " X" << endl;
cout << " X这意味着这个向量存储的是 `Point<T>` 对象的地址,而不是对象本身。在" << endl;
cout << " X" << endl;
cout << " X" << endl;
cout << " X" << endl;
cout << " X" << endl;
cout << " 使用时,需要先将对象动态分配内存,然后将其地址存储在 `vertices` 向量中。 X" << endl;
cout << " X" << endl;
cout << " X" << endl;
例如,可以使用类似下面的代码向 `vertices` 中添加一个 `Point<T>` 对象的指针:
```
cout << " X" << endl;
cout << " X" << endl;
cout << " Point<T>* p = new Point<T>(x, y);
vertices.push_back(p);
```
注意,使用完毕后需要手动 X" << endl;
cout << " X" << endl;
cout << " X" << endl释放内存,以避免内存泄漏:
```
for (int i = 0; i < vertices.size(); i;
cout << " X" << endl;
cout << " X" << endl;
cout << "++) {
delete vertices[i];
}
```
这段代码会释放 `vertices` 向量中所有元素所指向的内存。