我想复制类型为std::vector <glm::vec3> example
的向量的y分量,因为我不能通过执行类似example.size().y...
的操作来访问此向量的y分量。所以,我假设我必须将y组件的内容复制到另一个矢量/数组,但有没有办法做到这一点?我想的是:
std::vector <int> something;
for (int i = 0; i < example.size(); i++)
{
something[i] = example[i].y;
}
但它显然不起作用。
谢谢!
答案 0 :(得分:0)
您需要确保向量的大小与您推入的元素一起增长。 []
运算符只是一个访问者。
std::vector <int> something;
something.resize(example.size());
for (int i = 0; i < example.size(); i++)
{
something[i] = example[i].y;
}
答案 1 :(得分:0)
std::vector <int> something;
for (int i = 0; i < example.size(); i++)
{
something[i] = example[i].y;
}
两个问题:
glm::vec3
是浮点类型,example[i].y
将返回浮点值。如果这些是规范化的模型顶点,则它们很可能都在[-1,1]
范围内,这意味着始终会为something[i]
,-1
或{{0
分配1
1}}。something
从未在您提供的代码段中初始化其内存。这将导致运行时崩溃。你应该写像 std::vector<float> something(example.size());