ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

【C++】记录size of std::vector的巧妙坑

2026/8/14 13:58:45 拓冰建站 浏览量
【C++】记录size of std::vector的巧妙坑

定义

std::vector<float>vertices={0.0f,0.5f,0.0f,// x,y,z of first point.0.5f,-0.5f,0.0f,// x,y,z of second point.-0.5f,-0.5f,0.0f,// x,y,z of third point.}

求:vertices所存储的数据的字节数?


我之前以为,答案是sizeof(vertices) = sizeof(float[9]) = 9 * sizeof(float) = 36

至少,起码,sizeof(vertices.data()) = 36吧?

然后我才反应过来:

  1. sizeof(vertices)= 32,是std::vector<float>对象本身所占的字节数

  2. sizeof(vertices.data()) = 8,是指针大小。64 位系统为 8 字节,32 位系统为 4 字节。


所以,要求数据字节数,应该是vertices.size()* sizeof(float)。