如何在C++ STL中初始化3D向量?
在C++ STL中,我们可以使用std::vector
容器来方便地创建动态数组。在3D图形学中,经常需要用到3D向量,因此在本文中,我们将介绍如何在C++ STL中初始化3D向量。
什么是3D向量?
3D向量是3D图形学中的基础概念,它由三个实数(x、y、z)组成,表示在3D坐标系中的一个点。可以把3D向量看作从坐标系原点出发的带有方向的线段,它的长度被称为向量的模。
在C++ STL中,可以使用std::vector
容器来创建3D向量。
创建一个空的3D向量
我们可以使用C++ STL中的std::vector
容器来创建空的3D向量。创建一个空的3D向量非常简单,只需声明一个std::vector
变量并指定其容量即可。以下是创建一个空的3D向量的示例代码:
#include <iostream>
#include <vector>
int main() {
std::vector<float> v(3);
std::cout << "3D Vector: (" << v[0] << ", " << v[1] << ", " << v[2] << ")" << std::endl;
return 0;
}
在上面的代码中,我们声明了一个名为v
的std::vector
变量,并指定它的容量为3,这意味着我们创建了一个3D向量。输出将是:
3D Vector: (0, 0, 0)
创建一个指定值的3D向量
我们可以使用C++ STL中的std::vector
容器来创建指定值的3D向量。创建一个指定值的3D向量也非常简单,只需在声明std::vector
变量时指定相应的值即可。以下是创建一个指定值的3D向量的示例代码:
#include <iostream>
#include <vector>
int main() {
std::vector<float> v(3, 1.0f);
std::cout << "3D Vector: (" << v[0] << ", " << v[1] << ", " << v[2] << ")" << std::endl;
return 0;
}
在上面的代码中,我们声明了一个名为v
的std::vector
变量,并指定它的容量为3,并设置每个元素的值为1.0。输出将是:
3D Vector: (1, 1, 1)
创建一个从数组中初始化的3D向量
我们可以使用C++ STL中的std::vector
容器来创建一个从数组中初始化的3D向量。创建这样的3D向量,我们只需声明std::vector
变量,并将数组作为参数传递给std::vector
的构造函数即可。以下是创建一个从数组中初始化的3D向量的示例代码:
#include <iostream>
#include <vector>
int main() {
float arr[3] = {1.0f, 2.0f, 3.0f};
std::vector<float> v (arr, arr + sizeof(arr) / sizeof(arr[0]));
std::cout << "3D Vector: (" << v[0] << ", " << v[1] << ", " << v[2] << ")" << std::endl;
return 0;
}
在上面的代码中,我们声明了一个名为arr
的数组,并将它们作为参数传递给了std::vector
的构造函数。我们使用sizeof()
求出数组长度,并将它们传递给std::vector
的构造函数来初始化3D向量。输出将是:
3D Vector: (1, 2, 3)
改变3D向量中的值
我们可以使用std::vector
的at()
方法来改变3D向量中的值。以下是用at()
方法改变3D向量中的值的示例代码:
#include <iostream>
#include <vector>
int main() {
std::vector<float> v(3, 1.0f);
v.at(1) = 2.0f;
std::cout << "3D Vector: (" << v[0] << ", " << v[1] << ", " << v[2] << ")" << std::endl;
return 0;
}
在上面的代码中,我们首先声明一个名为v
的std::vector
变量,并将其所有元素初始化为1.0。我们然后使用at()
方法将第二个元素的值改变为2.0。输出将是:
3D Vector: (1, 2, 1)
结论
在C++ STL中,可以使用std::vector
容器来创建3D向量,并可轻松地进行初始化和改变元素的值。本文介绍了如何创建空的3D向量、创建指定值的3D向量、创建一个从数组中初始化的3D向量,以及使用at()
方法改变3D向量中的值。希望这篇文章能帮助你更好地理解如何在C++ STL中使用3D向量。