Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/129.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 将属性插入向量中的最后一个元素_C++_Vector - Fatal编程技术网

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

C++ 将属性插入向量中的最后一个元素,c++,vector,C++,Vector,对不起!这个代码实际上工作正常;我看到了错误的错误。感谢大家的投入 我希望能够直接访问C++中向量的最后一个元素。目前,我将_向后推一个自定义类型的临时变量,但是我更愿意将数据直接放入向量中。下面的代码是我想做的一个示例。它不会编译,但它比我解释得更好: typedef struct { float colour[3]; } CustomType vector<CustomType> customArray; customArray.push_back(CustomTyp

对不起!这个代码实际上工作正常;我看到了错误的错误。感谢大家的投入

<>我希望能够直接访问C++中向量的最后一个元素。目前,我将_向后推一个自定义类型的临时变量,但是我更愿意将数据直接放入向量中。下面的代码是我想做的一个示例。它不会编译,但它比我解释得更好:

typedef struct
{
    float colour[3];
}
CustomType

vector<CustomType> customArray;

customArray.push_back(CustomType());

// The hard part - won't work
customArray.back().colour[0] = 1;
最后一行我需要一些帮助;将数据放入向量中最近推回的元素的正确语法是什么?

customArray.size-1是添加到向量的最后一项的索引

customArray[customArray.size-1]。颜色[0]=1应该可以工作


[正如Oli和interjay等人所评论的,如果您纠正语法错误,back方法将起作用]

您的意思是这样的:

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

// Now you can access them directly
customArray[0].colour[0] = 1;
back返回对向量最后一项的引用,除了一个小的语法错误外,您的代码是正确的。

为什么不

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


它确实有用!再试一次:

一旦我修复了小语法错误-missing;,代码就会为我编译;。我对你的问题不是很确定,但这是否适用于u customArray[customArray.size-1]。颜色[0]=1;你说它不起作用是什么意思?如前所述,代码运行良好,因为customArray.back返回对最后一个元素的引用,而不是副本。@Oli:我也这样做。结果是我没有正确读取错误;这是一段不同的代码。出于兴趣,可以使用。回到这里,对吗?如果你回答了自己的问题,你可能应该关闭/删除它…正是这样,但我想得到数组的最后一个元素,它的长度是动态的@琼斯卡的想法是对的。@Jam:好吧,那为什么不直接用back呢?少打字了!back已经被建议了很多,我以前确实正确地使用过它——由于另一个错误,我的代码没有编译,这让我感到困惑。在其他新闻中,更少的打字。。。我被出卖了!back应该也能用,而且更具可读性。在意识到我是个白痴之后,是的,back更适合使用。无论如何,谢谢你,@jonsca。