【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)。

相关推荐
2601_962218614 分钟前
C++中decltype关键字的实现
开发语言·c++
hqyjzsb9 分钟前
法律 Prompt 干货:搭建合同审查提示词要包含哪些要素
开发语言·人工智能·python·职场和发展·数据分析·prompt·业界资讯
孙启超17 分钟前
【AI开发之Rust】第 19 课:UniFFI 导出核心能力
开发语言·后端·rust
2601_9669496531 分钟前
股票池发生变化后,如何高效更新行情数据?从全量刷新到增量同步
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
繁华的地方不一定留下你的脚印39 分钟前
C++ std::variant 与 std::visit:安全保存多种类型,写清每个处理分支
开发语言·c++
小羊没烦恼!1 小时前
在Scrum中实施敏捷建模
java·开发语言·windows·算法·c#
❀͜͡傀儡师1 小时前
20 年沉淀,CAS 8.0 重新定义企业级 SSO:适配 JDK 25 与 Spring Boot 4.1
java·开发语言·spring boot
程序员老陆1 小时前
WIN32_LEAN_AND_MEAN:Windows 头文件里的“精简编译开关”
c++·windows
weixin_307779131 小时前
基于睿擎工业开发平台的预训练视觉模型轻量化适配与低代码部署优化
开发语言·算法
实心儿儿1 小时前
Qt — Qt 多线程
开发语言·qt