首页 > 其他分享 >vector<bool>的玄学问题及处理方法

vector<bool>的玄学问题及处理方法

时间:2024-02-02 11:22:07浏览次数:20  
标签:玄学 元素 处理 vector bool 引用 array prev

今天做题的时候搞范围循环,发现不能对 vector 数组元素引用。

报错

vector<bool> prev(26, false);
for (bool& x : prev) x = true;

[错误] 非常量引用的初始值必须是左值

这很反常识,因为其他元素的 vector 我都是用这样来操作元素的。

同时我想到之前就遇到一个问题,无法直接读入 vector<bool> 元素。

了解后发现,CPP 为了节省空间,把 vector<bool> 优化成了一个元素占一字节的畸形东西,类似可变的 bitset

处理

  • 强行引用

    • 非要引用的话可以强行用 bool && 万能引用来搞。

      • 这个东西我不懂不敢乱用。
      • 并且这样做虽然能修改值了,但是还是无法读入。
  • array<bool, 26> prev = {}

    • 用封装的几乎完全类似传统数组的 std::array 来平替即可。

标签:玄学,元素,处理,vector,bool,引用,array,prev
From: https://www.cnblogs.com/kdlyh/p/18002840

相关文章

  • js处理事件:异步处理事件与线程,使用队列按序执行,事件广播,事件bus,事件监听,变量监听,动态
    js处理事件:异步处理事件与线程,使用队列按序执行,事件广播,事件bus,事件监听,变量监听,动态执行,父子通信在Vue3中,你可以使用以下方法来处理异步事件、线程、队列执行、事件广播、事件总线、事件监听、变量监听、动态执行和父子通信:1.异步处理事件:可以使用async/await或Promise......
  • ADS1256读取到的24位有符号数据处理
    ADS1256通过SPI读取到的数据为24位有符号数据[0,23],第23位为符号位,1为负,0为正。但是在STM32中,我们常用int32或者uint32来存放这个数据,如果直接赋值赋过去就会出现意想不到的后果,如下:这就是直接赋值之后绘出来的图,因此我们需要将24为有符号变量转换为32位有符号变量,但在此处很容......
  • 快乐学Python,如何正确使用pandas处理时间类型的数据?
    在日常的数据分析工作中,常常会有根据日期来对数据进行分析。比如我们需要通过用户的下单时间来分析用户在不同时间段对商品的喜好;如通过访问日志的访问时间来分析系统的访问周期和负载,为不同时间段的资源调配提供依据;如通过用户刷短视频的时间来分析用户的行为特征和工作时间和工种......
  • Java面向对象程序设计——带异常处理的person类
    带异常处理的person类【问题描述】定义一个Person类,属性包含姓名、年龄。方法:无参构造方法、有参构造方法、getter和setter方法、toString方法。其中:setter方法在设置年龄的时候,要求对年龄进行参数的正确性检测,年龄有效范围在1-100之间,否则抛出IllegalArgumentException异常【输......
  • 从CF1737学习区间计数处理与开方精度丢失问题
    Problem-B-Codeforces思路出来之后,需要计算\(l,r\)区间的个数。我想的是计算出\([0,r]\)的个数和\([0,l]\)的个数,然后相减。大体上是没问题,但是我的实现麻烦而且有错误。初始代码voidsolve(){lll,r;cin>>l>>r;autocalc=[&](llx,bool......
  • vector
    vector的定义与特性为动态数组,可以存储一系列相同类型的元素。头文件<vector>vector<类型>变量名;会根据元素数量自动分配内存空间可以使用索引访问,索引(下标)从0开始,最后一个元素的索引为size()-1,但是不可以写成i<=size()-1,因为size为整数未定型,这样写会变得很大,会出问题,可以......
  • js处理excel数据
    借助xlsx实现js读取处理excel数据,并输出excel文件<inputtype="file"@change="fn"/>import*asXLSXfrom'xlsx'fn(e){letfileObj=e.target.files[0]constfileReader=newFileReader()fileReader.readAsArrayBuffer(fileObj)fileR......
  • 基于MQ的数据处理架构的实践
    思路我的需求是:做一个数据转换中心,但是数据格式各种各样,转换工具各种各样,有的是插件,有的是软件,格式转换耗时不可控可能几分钟。我的思路是:server将转换任务简单包装,发送给MQ。Agent持续获取MQ中任务,然后按照既定的脚本或模板,调用worker进行具体转换。需要注意的是:1.要制定一......
  • dremio vectorized Parquet Reader v2 支持
    dremio从24.3开始支持parquetv2writer同时性能提升还是很明显的对于读官方在TPC-DS测试中,最低有22%左右的,最高97%,平均77%左右写入同样也是TPC-DS中,存储降低24%左右,写入提升1.5%左右,如果开启了c3读性能提升6.4%开启ui配置(全局)可以通过supportkeysql配置(全......
  • [stable/nginx-ingress] [emerg] 46#46: bind() to 0.0.0.0:80 failed (13: Permissio
    该报错与nginx的报错是一样的,不同的是发生在kubernetes-ingress场景。使用NginxIngressController时,以Deployment的方式启动POD时会报错。使用的Deployment配置示例:https://github.com/nginxinc/kubernetes-ingress/blob/main/deployments/deployment/nginx-ingress.yaml这......