point(*p)[3]使用举例
时间: 2023-09-15 11:17:25 浏览: 50
假设我们有一个名为 `Point` 的结构体,表示二维平面上的一个点,其定义如下:
```c++
struct Point {
int x;
int y;
};
```
现在我们想要创建一个指向 `Point` 结构体的指针,并给它赋值,可以这样写:
```c++
Point p1 = {1, 2};
Point* p2 = &p1; // 创建指向 p1 的指针
```
现在,如果我们想要通过指针 `p2` 来访问 `x` 和 `y` 成员变量,可以使用 `->` 运算符,如下:
```c++
cout << p2->x << " " << p2->y << endl;
```
这里输出的结果应该是 `1 2`。如果我们想要修改 `x` 和 `y` 的值,也可以通过指针来完成,如下:
```c++
p2->x = 3;
p2->y = 4;
cout << p1.x << " " << p1.y << endl; // 输出 3 4
```
相关问题
point*p[3]使用举例
point *p[3] 是一个指向 point 类型指针的数组,用于存储指向 point 类型变量的地址。下面是一个使用该数组的简单示例:
```
#include <iostream>
using namespace std;
class point {
int x, y;
public:
void set(int a, int b) { x = a; y = b; }
void print() { cout << "(" << x << ", " << y << ")" << endl; }
};
int main() {
point p1, p2, p3;
p1.set(1, 2); p2.set(3, 4); p3.set(5, 6);
point *p[3] = { &p1, &p2, &p3 };
for (int i = 0; i < 3; i++)
p[i]->print();
return 0;
}
```
在这个程序中,我们定义了一个 point 类,其中包含 set() 和 print() 两个成员函数,分别用于设置点的坐标和打印点的坐标。在 main() 函数中,我们创建了三个 point 类型的变量 p1、p2 和 p3,并对它们分别调用 set() 函数来设置它们的坐标。接着,我们定义了一个指向 point 类型指针的数组 p,并将它初始化为指向 p1、p2 和 p3 这三个点的地址。最后,我们利用 for 循环遍历整个数组,依次调用每个指针所指向的 point 变量的 print() 函数来输出它们的坐标。
Eigen 的se3编程举例
Eigen 是一种 C++ 的线性代数库,它支持各种矩阵操作和几何变换。其中,se3 表示三维空间内的刚体变换,包括旋转和平移。下面是一个使用 Eigen 实现 se3 变换的示例代码:
```cpp
#include <Eigen/Core>
#include <Eigen/Geometry>
#include <iostream>
int main()
{
// 定义一个旋转矩阵和一个平移向量
Eigen::Matrix3d R;
R << 0.0, -1.0, 0.0,
1.0, 0.0, 0.0,
0.0, 0.0, 1.0;
Eigen::Vector3d t(1.0, 2.0, 3.0);
// 定义一个 se3 变换
Eigen::Isometry3d T = Eigen::Isometry3d::Identity();
T.linear() = R;
T.translation() = t;
// 打印 se3 变换的矩阵形式
std::cout << "SE3 matrix:\n" << T.matrix() << std::endl;
// 对一个点进行变换
Eigen::Vector3d p(4.0, 5.0, 6.0);
Eigen::Vector3d q = T * p;
// 打印变换前后的点坐标
std::cout << "Point before transformation:\n" << p << std::endl;
std::cout << "Point after transformation:\n" << q << std::endl;
return 0;
}
```
这段代码定义了一个旋转矩阵和一个平移向量,然后使用 Eigen::Isometry3d 类定义了一个 se3 变换 T,并将 R 和 t 分别赋值给它的旋转和平移部分。最后,对一个点进行变换并输出变换前后的点坐标。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![.zip](https://img-home.csdnimg.cn/images/20210720083646.png)
![pptx](https://img-home.csdnimg.cn/images/20210720083543.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)