编辑抱歉!此代码实际上正常工作;我看错了。感谢大家的投入。
我希望能够直接访问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;
我想在最后一行得到一些帮助;将数据放入向量中最近推回的元素的正确语法是什么?
答案 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;