在 GTSAM 中,gtsam::Key
和 gtsam::Vector
是常用的数据类型。下面是这些类型的详细介绍和用法示例。
gtsam::Key
gtsam::Key
是 GTSAM 中用于唯一标识状态变量的类型。它通常是一个整数类型(size_t
),用于区分和管理因子图中的各个变量。
特性
- 定义变量标识符:
Key
是状态变量的唯一标识符。 - 类型:
gtsam::Key
通常是一个size_t
类型的别名。
示例
gtsam::Key key1 = 1; // 定义一个 Key,值为 1
gtsam::Key key2 = 2; // 定义另一个 Key,值为 2
gtsam::Vector
gtsam::Vector
是 GTSAM 中用于表示向量的类型。它是一个动态大小的浮点数组,通常用于表示变量的状态值或测量值。
特性
- 动态大小:
gtsam::Vector
是一个动态大小的数组,能够容纳任意数量的浮点数。 - 使用:可以使用
gtsam::Vector
来存储状态变量的估计值、误差项或其他需要向量表示的数据。
示例
gtsam::Vector value1(3); // 定义一个长度为 3 的 Vector
gtsam::Vector value2(3); // 定义另一个长度为 3 的 Vector
完整代码示例
以下是一个简单的示例,展示了如何使用 gtsam::Key
和 gtsam::Vector
定义和操作状态变量:
#include <gtsam/nonlinear/Values.h>
#include <gtsam/base/Vector.h>
#include <iostream>
int main() {
// 定义两个 Key
gtsam::Key key1 = 1;
gtsam::Key key2 = 2;
// 定义两个 Vector,每个长度为 3
gtsam::Vector value1(3);
gtsam::Vector value2(3);
// 为 Vector 赋值
value1 << 1.0, 2.0, 3.0;
value2 << 4.0, 5.0, 6.0;
// 打印值
std::cout << "Value1: " << value1.transpose() << std::endl;
std::cout << "Value2: " << value2.transpose() << std::endl;
return 0;
}