复制向量的 y 分量

Copy y-components of a vector

我想复制类型向量的 y 分量:std::vector <glm::vec3> example,因为我无法通过 example.size().y... 之类的操作仅访问该向量的 y 分量。所以,我假设我必须将 y 分量的内容复制到另一个 vector/array,但有没有办法做到这一点?我在想类似的东西:

std::vector <int> something;

    for (int i = 0; i < example.size(); i++)
    {
        something[i] = example[i].y;
    }

但它显然不起作用。

谢谢!

您需要确保矢量的大小随着您推入其中的元素而增长。 [] 运算符只是一个访问器。

std::vector <int> something;
something.resize(example.size());

for (int i = 0; i < example.size(); i++)
{
    something[i] = example[i].y;
}
std::vector <int> something;

for (int i = 0; i < example.size(); i++)
{
    something[i] = example[i].y;
}

两期:

  1. glm::vec3是浮点型,example[i].y是去return一个浮点值。如果这些是归一化模型顶点,它们很可能都在 [-1,1] 范围内,这意味着 something[i] 将始终分配 -101.
  2. something 从未在您提供的代码片段中初始化其内存。这将导致运行时崩溃。你应该写类似

std::vector<float> something(example.size());