在使用vector的时候犯了一个导致编译错误,在这里记录一下。

vector是非常常见也非常好用的容器,但是vector的指针有一些特殊。如果想要获得vector的数组的指针,我找到了两种方法。

&vec[0]
vec.data()

这两中方法都可以得到数据的第一个元素的指针,如果要对函数出入指针,则需要这样获取。

另外在求字符大小的时候使用了sizeof,但实际直接使用会得出错误的结论,如:

sizeof(vec);

这样获得的不是这个vector的字符大小,而是这个vector的类型的字符大小,也就是数如果类型相同,不管其中包含多少元素,大小是一样的。

sizeof(float)*vec.size();//这样是正确的值
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐