博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《条目十八》避免使用vector<bool>
阅读量:7031 次
发布时间:2019-06-28

本文共 425 字,大约阅读时间需要 1 分钟。

《条目十八》避免使用vector

先说结论:

  • 一是:vector<bool>不是标准容器,因为标准容器的对于T *p = &c[0];必须是可编译的。
  • 二是:vector<bool>并不是以单个元素为bool来存储的。

在底层实现中,vector<bool>中为了节省空间,bool并不真的是以单个字节来存储的,而是通过位bit来表示的,一个位代表一个bool表示。

vector不满足STL容器的必要条件,你最好不要使用它;而deque和bitset是基本能满足你对

vector提供的性能的需要的替代数据结构

这里我不想深究了,因为它是不提倡的技术。其主要原因就是vector不是标准容器,不符合T *p = &c[0];,返回的是一个引用代理,究其原因就是底层内部是使用了压缩位数来表达bool,借助引用来模拟返回的是一个bool字节。。。

转载于:https://www.cnblogs.com/liangjf/p/10275020.html

你可能感兴趣的文章
Java项目命名规范
查看>>
springmvc文件上传配置
查看>>
Linux ASLR的实现
查看>>
基于Redmine建设敏捷团队信息平台
查看>>
Swift -- 数组
查看>>
C# 与 C++ 数据类型对照
查看>>
c#中自定义属性
查看>>
OpenStack云计算----安装与部署(中篇)
查看>>
Web在线升级系统
查看>>
erlang国际化时间转换(ISO 8601)
查看>>
Kubernetes集群部署
查看>>
Windows server 2008R2服务器系统登录密码破解
查看>>
Oracle Internal Research深入研究Oracle内部原理
查看>>
测试断言技巧
查看>>
NDK library "libgnustl_shared.so" not found
查看>>
我的友情链接
查看>>
cobbler------安装配置
查看>>
自己项目中PHP常用工具类大全分享
查看>>
java笔记整理——代理
查看>>
Oracle基于时间点的恢复
查看>>