将属性插入向量中的最后一个元素

时间:2011-08-14 13:01:00

标签: c++ vector

编辑抱歉!此代码实际上正常工作;我看错了。感谢大家的投入。

我希望能够直接访问C ++中vector<>的最后一个元素。目前,我push_back()是一个临时变量(自定义类型),但我更倾向于将数据直接放入向量中。以下代码是我想要做的一个例子。它不会编译,但它比我更好地解释:

typedef struct
{
    float colour[3];
}
CustomType

vector<CustomType> customArray;

customArray.push_back(CustomType());

// The hard part - won't work
customArray.back().colour[0] = 1;

我想在最后一行得到一些帮助;将数据放入向量中最近推回的元素的正确语法是什么?

4 个答案:

答案 0 :(得分:2)

back()返回对向量的最后一项的引用,除了小的语法错误外,您的代码是正确的。

答案 1 :(得分:2)

为什么不会

customArray.back().colour[0] = 1;

工作?

确实有效!再试一次:))

答案 2 :(得分:0)

customArray.size() - 1是添加到矢量

的最后一项的索引

customArray[customArray.size()-1].color[0]=1应该有用。

[正如Oli和interjay等人评论的那样,如果你纠正了语法错误,back()方法会有效]

答案 3 :(得分:0)

你的意思是这样的:

// Construct vector with `NUM_ELEMENTS` entries
vector<CustomType> customArray(NUM_ELEMENTS);

// Now you can access them directly
customArray[0].colour[0] = 1;