首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么两个vector<bool> bVec ={ true,false,true,false,true};vector<char> cVec ={ 'a','b','c','d','e‘}的大小不同?

两个vector的大小不同是因为vector<bool>和vector<char>在内存中的存储方式不同。

vector<bool>是一个特殊的容器,它使用位压缩(bit compression)的方式来存储bool类型的数据。在内存中,每个bool值只占用一个位(bit),而不是一个字节(byte)。这样做是为了节省内存空间。所以,对于vector<bool>来说,每个元素只占用一个位,而不是一个字节。因此,vector<bool>的大小是按位计算的,而不是按字节计算的。

而vector<char>是一个普通的容器,它使用一个字节(byte)来存储每个char类型的数据。在内存中,每个char值占用一个字节。所以,对于vector<char>来说,每个元素占用一个字节。因此,vector<char>的大小是按字节计算的。

所以,两个vector的大小不同是因为vector<bool>的大小是按位计算的,而vector<char>的大小是按字节计算的。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的文章

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券