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

定义

c 复制代码
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(float9) = 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)。

相关推荐
周周哈哈哈1 小时前
线程创建、执行、退出、回收
java·开发语言
gb42152871 小时前
python中Web应用服务器
开发语言·前端·python
萧瑟余晖2 小时前
Java深入解析篇三十六之分布式系统详解
java·开发语言·分布式
ZJU_统一阿萨姆3 小时前
【推理优化进阶】调度器的数学内核:排队论、SLO 与在线决策
开发语言·人工智能·语言模型·系统架构·vllm
SomeB1oody3 小时前
【RustyML入门】5.2. 分类指标
开发语言·后端·机器学习·rust·教程
ZJU_统一阿萨姆3 小时前
【推理优化进阶】图编译与运行时:动态形状、CUDA Graph 与内存规划
开发语言·人工智能·语言模型·架构·开源
@呱呱爱学习3 小时前
C++大成之路_ STL容器_ Vector
开发语言·c++
码匠许师傅4 小时前
【C++ 面试真题】19. 聊聊 C++ 的迭代器
开发语言·c++·面试
AI情绪识别开源4 小时前
检信ALLEMOTION VibrationAI 2.4.0 12维度情绪识别开源源代码
开发语言·python