如何在C++ STL中初始化3D向量?

如何在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;
}

在上面的代码中,我们声明了一个名为vstd::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;
}

在上面的代码中,我们声明了一个名为vstd::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::vectorat()方法来改变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;
}

在上面的代码中,我们首先声明一个名为vstd::vector变量,并将其所有元素初始化为1.0。我们然后使用at()方法将第二个元素的值改变为2.0。输出将是:

3D Vector: (1, 2, 1)

结论

在C++ STL中,可以使用std::vector容器来创建3D向量,并可轻松地进行初始化和改变元素的值。本文介绍了如何创建空的3D向量、创建指定值的3D向量、创建一个从数组中初始化的3D向量,以及使用at()方法改变3D向量中的值。希望这篇文章能帮助你更好地理解如何在C++ STL中使用3D向量。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程