草庐IT

有多少

全部标签

c++ - 有多少数字高于平均值 [C++]

我用30个随机数填充了一个数组并计算了平均值。我想显示有多少数字高于平均值。我尝试制作一个函数“aboveAverage”并检查数字是否高于平均值,而不是仅仅增加计数“num_over_average++”。问题是我不知道如何将值“avg”从一个函数传递到另一个函数。#include#includeusingnamespacestd;constintn=30;voidfillArray(intage[],intn){srand(time(NULL));for(intindex=0;indexavg){num_over_average++;}}coutintmain(intargc,ch

c++ - typeid 运算符返回的对象的生命周期是多少?

如果我调用typeid并检索返回的type_info的地址:consttype_info*info=&(typeid(Something));typeid返回的对象的生命周期是多少?指向该对象的指针将保持多长时间有效? 最佳答案 无论实现如何实现它们,typeid表达式的结果都是左值,这些左值引用的对象的生命周期必须持续到程序结束。来自ISO/IEC14882:20035.2.8[expr.typeid]:Theresultofatypeidexpressionisanlvalue[...]Thelifetimeoftheobjec

c++ - 复制一个 std::function 有多昂贵?

虽然std::function是可移动的,但在某些情况下这是不可能的或不方便的。复制它会受到严重处罚吗?它是否可能取决于捕获变量的大小(如果它是使用lambda表达式创建的)?是否依赖于实现? 最佳答案 std::function通常实现为值语义、小缓冲区优化、虚拟调度、类型删除类。这意味着如果您的状态很小,则复制将不涉及堆分配(除了在状态的复制构造函数内)和一些间接(找到如何复制此特定状态)。如果您的状态很大(例如,在当前MSVC上大于两个std::string),则需要额外的堆分配来存储状态。这不是您想要在每帧每个像素的基础上执

c++ - 指向 typeinfo::name() 的内存的生命周期是多少?

在C++中,我可以使用typeid运算符来检索任何多态类的名称:constchar*name=typeid(CMyClass).name();返回的constchar*指针指向的字符串对我的程序可用多长时间? 最佳答案 只要带有rtti的类存在。因此,如果您处理单个可执行文件-永远。但是对于动态链接库中的类,它会发生一点变化。可能你可以卸载它。 关于c++-指向typeinfo::name()的内存的生命周期是多少?,我们在StackOverflow上找到一个类似的问题:

c++ - 在 O(n) 阶双向链表中插入/删除的时间复杂度是多少?

要在DLL(双向链表)中插入/删除具有特定值的节点,需要遍历整个列表以找到位置,因此这些操作应该是O(n)。如果是这样,那么STL列表(很可能是使用DLL实现的)为什么能够在恒定时间内提供这些操作?谢谢大家给我讲清楚。 最佳答案 在已知位置插入和删除的复杂度为O(1)。但是,找到那个位置是O(n),除非它是列表的头部或尾部。当我们谈论插入和删除的复杂性时,我们通常假设我们已经知道插入和删除的位置。 关于c++-在O(n)阶双向链表中插入/删除的时间复杂度是多少?,我们在StackOver

c++ - 为什么 C++ 虚拟调用并不比非虚拟调用慢多少?

据我了解,对于C++虚拟调用,它需要:从符号表中获取对象的类型从类型表中获取v表使用v表中的函数签名搜索函数调用函数。对于非虚拟(例如在C中)调用,只需要#4。我认为#3应该是最耗时的。考虑到C++中实时覆盖的性质,我看不出上述步骤的编译时间优化有多大潜力。因此,对于具有长函数签名的复杂类继承,C++虚拟调用应该比非虚拟调用慢得多。但所有说法都是相反的,为什么? 最佳答案 GetthetypeoftheobjectfromthesymboltableGetthev-tablefromthetypetableSearchthefunc

c++ - 封闭循环变量的生命周期和范围是多少?

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Whatisthescopeofawhileandforloop?for(int32segNo=0;segNo是否会在每次循环时调用对象cm的构造函数和析构函数?如果是这样,析构函数是在循环变量递增之前还是之后被调用?

c++ - 三角扇有多少个顶点用opengl

我正在学习openGL,我遇到过使用顶点缓冲对象的三角扇。如果给定要渲染的顶点数组,openGL如何决定必须使用多少顶点来构造三角形扇形。似乎可以使用任意数量的顶点。 最佳答案 这可以很容易地通过比较三角带和三角扇来解释。三角带您可能知道,三角形带是一组共享顶点的连接三角形,这样可以更有效地使用内存。(我们节省了内存,因为我们不存储所有重复的顶点)三角带示例三角扇另一方面,我们有一个三角扇,这也是一组相连的三角形。尽管所有这些三角形都有一个共同的顶点,即中心顶点。(第一个顶点总是中心)话虽如此,我们可以拍摄上面的相同图像并更改顶点的

c++ - 重新定义/隐藏局部变量有多糟糕?

在将遗留项目升级到VS2015时,我注意到有很多错误,例如在函数内部重新定义局部变量。voidfun(){intcount=applesCount();cout编译器的错误/警告消息是:declarationof'count'hidespreviouslocaldeclaration我知道为变量count使用相同的名称显然不是一个好的做法,但是编译器真的会把事情搞砸吗?或者通常他们会相当优雅地处理这种情况?更改和修复变量名是否值得,或者不太可能造成任何伤害并且风险很低或没有风险? 最佳答案 Inoticedtherewerealot

c++ - 空 vector 的容量是多少?

看起来是个愚蠢的问题。但是评论我的answerSO问题之一让我重新思考。[评论说,空vector的容量不必为零]默认情况下,我的答案是0,因为vector中没有元素。将容量保持为0是有意义的,并且在第一次分配时可以增加容量而不会影响性能。但是标准并没有说明这一点。(我也查看了Josuttis的书)。它纯粹是特定于实现的吗?是否有任何STL供应商使用任意数字作为空vector的容量?任何想法... 最佳答案 C++标准23.2.4.2只说vector::capacity是Thetotalnumberofelementsthatthev