草庐IT

计数类DP

全部标签

c++ - 编译时模板 `std::integral_constant` 计数器 - 如何实现它?

我有几种类型,我想“绑定(bind)”一个std::integral_constant编译时每种类型的顺序ID值。例子:structType00{};structType01{};structType02{};structType03{};structTypeXX{};structTypeYY{};templatestructTypeInfo{usingId=std::integral_constant;};intmain(){cout::Id::value;//Shouldalwaysprint0cout::Id::value;//Shouldalwaysprint1cout::Id

c++ - clear() 是否影响 std::unordered_set 的桶计数?

有很多answers使用std::vector,但是std::unordered_set呢?我真正的问题(密切相关)是这样的;如果我事先保留我知道的合理大小,通过在每次使用前清除它来重用相同的无序集是否有效? 最佳答案 正式的回答是:这取决于实现。非正式的回答是:unordered_set里面有一个(某种)桶数组,而且很可能实现是和vector一致的,所以这个数组不会当clear()被调用时被删除。所以调用clear()很可能会带来一些好处。 关于c++-clear()是否影响std::

c++ - c++中的时间计数器

关闭。这个问题需要更多focused.它目前不接受答案。想改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭7年前。Improvethisquestion我想用C++编写一段代码,在我们等待用户输入例如我们想要查看的整数结果的同时进行计时。例如,我们希望用户输入两个整数并选择四种操作中的一种,然后记下结果。同时时钟或计数机开始计时,直到用户记下结果。是否可以在C++中执行,如果不能,我该怎么做?谢谢...

c++ - 相同的地址,多个 shared_ptr 计数器,C++ 标准是否禁止?

假设我有如下需求(这只是讨论C++标准的一些想象代码,所以我不会讨论为什么我这样设计它,所以不要打扰我这样的事情:你的设计错误。)T*ptr=newT;shared_ptrp(ptr);shared_ptrq(ptr,SomeDeleterThatDoesnotDeleteButDoSomeOtherStuff());假设逻辑保证p或它的某些拷贝比q的所有拷贝生命周期更长,那么实际上不会有任何问题。我的问题是,它是否被C++标准禁止,例如C++标准明确声明为UB,以便不同的shared_ptr计数器共享相同的地址?谢谢。 最佳答案

c++ - 预处理器计数器宏

有没有办法创建一个COUNTER()宏(遵循C++11/14标准)扩展为一个数字,每次COUNTER()被调用了吗?我已经考虑过了,但找不到让它发挥作用的方法。我没有找到在COUNTER()宏中存储“状态”的方法。示例:#defineCOUNTER()//Implementationgoeshere...#defineUNIQUE_NAME_1()TEST##COUNTER()#defineUNIQUE_NAME_2()TEST##COUNTER()//NotehowtheCOUNTER()macrocanbeusedwithothermacros//(itcannotbeimplem

c++ - 不使用 odr 的数组计数?

有几个很好的理由去选择#includetemplateconstexprstd::size_tARRAY_COUNT_FUNC(T(&arr)[N]){returnN;}而不是#defineARRAY_COUNT_MACRO(arr)(sizeof(arr)/sizeof(*arr))一个重要的区别是,当一个指针(不是数组)被传递给ARRAY_COUNT_MACRO时,它会默默地返回一个无用的答案,但是将相同的参数传递给ARRAY_COUNT_FUNC会导致编译错误指出错误。但是宏确实有一个优点:它的参数是未计算的。#includestructS{intmember_array[5];

c++ - Vulkan 中的描述符集计数歧义

我想在vulkan中绘制两个对象。为实现这一点,我遵循为每个模型创建两个不同描述符集的过程。但是,我对指定所需描述符集计数的结构感到困惑。令我困惑的点如下:在VkDescriptorSetLayoutBinding指定描述符计数VkDescriptorSetLayoutBindingstagingLayoutBinding={};...stagingLayoutBinding.descriptorCount=1;在VkDescriptorPoolSize指定描述符计数VkDescriptorPoolSizestagingPoolSize={};...stagingPoolSize.de

c++ - 何时使用并行计数 - 当内存有问题时使用 MIT HAKMEM 进行位计数?

比特计数可以通过多种方式完成,例如。带有设置位迭代器、未设置位迭代器、带有查找表或并行计数的预计算位。正如我通过搜索网络发现的那样,当未设置位较少时,未设置位迭代器速度很快,而设置位迭代器则相反。但是什么时候应该使用并行计数,尤其是MITHAKMEM(见下文)?它看起来相当快,尽管可能比查找表慢。就速度而言,它总是比设置/未设置位更好吗?除了速度和内存之外,还有其他关于选择哪一个的问题吗?intBitCount(unsignedintu){unsignedintuCount;uCount=u-((u>>1)&033333333333)-((u>>2)&011111111111);ret

c++ - 科学计数法数字的正则表达式?

我正在加载一个.obj文件,其中包含如下行vn8.67548e-0171-1.55211e-016用于顶点法线。我怎样才能检测到它们并将它们带入双重表示法? 最佳答案 一个运行良好的正则表达式是:-?[\d.]+(?:e-?\d+)?可以这样转换为数字:StringinscientificnotationC++todoubleconversion,我想。正则表达式是-?#anoptional-[\d.]+#aseriesofdigitsordots(see*1)(?:#startnoncapturinggroupe#"e"-?#an

c++ - 计数器和累加器有什么区别?

这个问题不太可能帮助任何future的访问者;它只与一个小的地理区域、一个特定的时间点或一个非常狭窄的情况有关,这些情况并不普遍适用于互联网的全局受众。为了帮助使这个问题更广泛地适用,visitthehelpcenter.关闭10年前。我不确定有什么区别,但这是问题所在。编写一个赋值语句,将名为numStudents的计数器变量更新为1。会不会是:numStudents=numStudents+1?我的另一个问题是编写一个赋值语句,用sales变量中的值更新一个名为total的累加器变量。它会像这样吗:total=total+sales?