草庐IT

bool_constant

全部标签

c++ - 我需要创建一个非常大的位/ bool 值数组。我将如何在 C/C++ 中执行此操作?

甚至可以创建一个包含超过100000000个元素的位数组吗?如果是这样,我将如何去做呢?我知道对于char数组我可以这样做:char*数组;array=(char*)malloc(100000000*sizeof(char));如果我用chararray[100000000]声明数组,那么我会得到一个段错误,因为已经超过了最大元素数,这就是我使用malloc的原因。我可以为位数组做类似的事情吗? 最佳答案 如果您使用的是C++,std::vector专门用于将元素打包成位图。当然,如果你正在使用C++,你需要停止使用malloc.

c++ - 使用正向链接解决 bool 表达式

有人可以借助前向链接帮助我解决bool表达式吗?好的教程也会对我有帮助。例子:A.(A+B)=AA.(A+B)=>A.A+A.B[应用分配律]A.A+A.B=>A+A.B[应用幂等律]A+A.B=>A.(1+B)A.(1+B)=>A.(1)=>A我已经付出了巨大的努力,但仍然无法做到这一点。该过程需要解析bool表达式,然后进行递归规则检查。我正在考虑创建表达式的二叉树,然后进行规则检查。我的方法正确吗?如果没有,请给我一个替代方案。 最佳答案 解决您的问题的一种方法可能是使用蛮力方法。我的意思是:尝试值A和B的所有可能组合(或者您

c++ - 将二进制文件读入 bitset 或 vector<bool>

如何将二进制文件读入bitset或vector?二进制文件的长度会有所不同。有更好的容器吗?我是C++的新手,但有丰富的程序员经验。 最佳答案 如果文件很大,为什么要读取一次,整个文件到内存?每次都可以读一小段。大小由此函数中的大小决定:file.read(buff,size)当buff是char的数组时。对不起,您不能简单地读取/将vector保存到文件中。更多详情seehere和here.然后使用Google,这非常有帮助... 关于c++-将二进制文件读入bitset或vector

c++ - FFmpeg 库 : Exactly constant segment duration for HLS

我们正在使用FFmpeg库git-ee94362libavformatv55.2.100。我们的目的是使用HLS将两个流(视频和音频)混合到M3U8播放列表中。此外,我们希望每个TS片段文件的持续时间正好为3.0秒(帧速率为25fps)。为了实现它,我们尝试设置几个选项和属性,即:-分段时间-keyint_min-scenechange_threshold-gop_size-force_key_frames。我们的代码如下所示:AVCodecContext*codec_ctx=NULL;AVFormatContext*ofmt_ctx=NULL;intret=0,gopSize=(in

c++ - 为什么 operator char*() 在 bool 上下文中覆盖 operator bool() const?

似乎在c++中,在纯bool上下文中,operatorchar*()的优先级高于operatorbool()const;并启用c++11模式和使用explicitoperatorbool()const没有帮助。这是g++中的错误还是语言标准中的错误?或者我没有看到这种疯狂行为的充分理由?问题的简单演示:#includestructA{charbuf[512];interr;operatorchar*(){returnbuf;}operatorconstchar*()const{returnbuf;}operatorbool()const{return!err;}//explicitop

c++ - 使用 atomic<bool> 的简单自旋锁中的数据竞争

这个问题在这里已经有了答案:C++11ImplementationofSpinlockusingheader``(2个答案)关闭7年前。#include#include#include#include#include#includeusingnamespacestd;classspinlock{private:atomicflag;public:spinlock():flag(false){}voidlock(){booltemp=false;while(!flag.compare_exchange_weak(temp,true,std::memory_order_seq_cst)&&

c++ - 错误 "requested alignment is not an integer constant"

我在解决GCC问题时遇到问题。我在GCC4.8下体验过它,但不是5.1。看起来它被报道了here和/或here.问题如下:templatestructS{staticconstintALIGN=16;__attribute__((aligned(ALIGN)))intx;};intmain(intargc,char*argv[]){Ss1;Ss2;return0;}和:$g++test.cxx-otest.exetest.cxx:9:41:error:requestedalignmentisnotanintegerconstant__attribute__((aligned(ALIGN

c++ - 'this' cannot be used in a constant expression error (C++)

全部。我有一个定义如下的类:classBoard{intcolumns,rows;boolboard[10][10];public:Board(int,int);voidnextFrame();voidprintFrame();};我的voidnextFrame()一直给我[rows][columns]的错误,因为对于它们两者来说“'this'不能在常量表达式中”。我怎样才能重新定义它以使其起作用?我明白这个错误。函数的定义如下,错误发生在以下代码示例的第3行。voidBoard::nextFrame(){intnumSurrounding=0;booltempBoard[rows][

c++ - atomic<bool> 与受互斥锁保护的 bool

假设我们有一个内存区域,某个线程正在向其中写入数据。然后它将注意力转移到别处并允许任意其他线程读取数据。然而,在某个时间点,它想要重用该内存区域并再次写入。写入器线程提供了一个bool标志(valid),它表示内存仍然有效,可以从中读取(即他还没有重新使用它)。在某个时候,他会将此标志设置为false,并且再也不会将其设置为true(它只会翻转一次,就是这样)。在顺序一致性的情况下,编写者和读者分别使用这两个代码片段应该是正确的:...valid=false;...和...if(valid){}else{}...我们显然需要做一些事情来确保顺序一致性,即插入必要的获取和释放内存屏障。我

c++ - bool 数组在衰减方面的处理方式不同吗?

考虑一个例子,我想创建一个bool数组的数组:intmain(){usingtype=bool[1];boola1[1]={true};boola2[1]={true};boola3[1]={true};typeblock_types[3]={{a1},{a2},{a3}};}此代码针对Clang7.0.0、GCC8.2和MSVSv19.16进行编译。现在,让我们将bool更改为int:intmain(){usingtype=int[1];inta1[1]={1};inta2[1]={1};inta3[1]={1};typeblock_types[3]={{a1},{a2},{a3}}