• 《条目十八》避免使用vector<bool>


    《条目十八》避免使用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字节。。。

  • 相关阅读:
    HDU
    hdu-1260 tickets
    hdu-1024 Max Sum Plus Plus
    spfa+链式前向星模板
    kafka-伪集群搭建
    elasticsearch-安装-centos7- es7.5 搭建
    elk-安装 通过docker
    kibana-安装-通过docker
    logstash -grok插件语法介绍
    docker 启动redis/nginx
  • 原文地址:https://www.cnblogs.com/liangjf/p/10275020.html
Copyright © 2020-2023  润新知