草庐IT

多少个

全部标签

c++ - C++ 中 set_intersection 的复杂度是多少?

下面代码的复杂度是多少?setS1,S2,ans;set_intersection(S1.begin(),S1.end(),S2.begin(),S2.end(),inserter(ans,ans.begin()))其中S1和S2是一些非空集,ans是一个空集。我知道将已排序的范围插入到集合中是线性的;但是也使用线性插入器插入吗? 最佳答案 插入器会记住上次插入每个项目的位置,并尝试在同一位置插入下一个项目。如果位置正确,则为O(1)。这意味着将排序的范围复制到插入器总体上是线性的,所以你在这里很好。

c++ - FIX 引擎从客户端向服务器发送 FIX 消息的最低延迟是多少?

我正在用C++构建一个FIX引擎,但我没有引用来了解什么是好的性能数字。考虑到网络时间和FIX解析时间,客户端向服务器发送FIX消息的最佳时间(以微秒为单位)是多少?还有人知道这个简单的FIX-message-from-client-to-server操作预期的当前最低延迟吗? 最佳答案 这将取决于您的FIX引擎将字节解析为FixMessage对象的速度,更重要的是取决于您的网络代码的速度。你也在写网络栈吗?编写FIX引擎从表面上看很简单,但实际上是一项复杂的任务,您必须涵盖太多极端情况和功能。你打算支持重传吗?异步审计日志?修复s

c++ - 在函数调用中从 %esp 中减去分配了多少空间?

C++,ATT汇编我有以下汇编代码:push%ebpmov%esp,%ebpsub$0x28,%esp(...)我的教科书声称通过从%esp中减去0x28(作为堆栈形成的一部分),为变量分配了12个字节。为什么从栈中减去十进制40会分配12个字节? 最佳答案 这会在堆栈上分配40个字节。但是,除了局部变量之外,它还有其他用途,所以我猜测其余部分用于对齐和future函数调用的参数。由于函数参数也在堆栈上传递,因此需要为该函数要传递给另一个函数的任何空间留出空间。可以在使用push执行调用时分配此空间,但在函数开头分配一次空间并仅使用

c++ - c++中一个类最多可以有多少个成员

请将此查询视为一个好奇的问题。我只想知道在C++中一个类可以拥有的成员数量是否有任何限制。希望会有一些最大允许数量,因为我猜在某种语言中一切都是有限的。 最佳答案 该值由每个实现定义。C++标准在附件B中推荐了一些最低支持数量:—Datamembersinasingleclass[16384].[...]—Directandindirectbaseclasses[16384].—Directbaseclassesforasingleclass[1024].—Membersdeclaredinasingleclass[4096].—F

c++ - 类的对象(使用单/多继承)有多少个 vptr?

一个对象通常需要多少个vptr,其clas(child)具有单一继承,基类多重继承base1和base2。识别一个对象有多少个vptr的策略是什么,它具有一对单继承和多继承。虽然标准没有具体说明vptrs但我只想知道一个实现是如何实现虚函数的。 最佳答案 你为什么关心?简单的答案是足够,但我猜你想要更完整的东西。这不是标准的一部分,所以任何实现都可以随心所欲,但一般的经验法则是,在使用虚拟表指针的实现中,作为第零近似值,用于您需要的动态调度至多指向虚拟表的指针与向层次结构中添加新虚拟方法的类一样多。(在某些情况下,可以扩展虚拟表,基

c++ - std::bind 有多少个参数(VC 11 只支持 4 个)

我正在玩VisualStudio11的开发者预览版。我偶然发现的缺点之一是std::bind仅支持4个函数参数。我在C++11标准文件中找不到任何相关内容。是否定义了参数的最小数量,或者所有的实现都取决于? 最佳答案 在VC11中,您可以通过设置_VARIADIC_MAX来增加可变参数模板仿真方案使用的最大参数数量。默认为5。看这里:http://blogs.msdn.com/b/vcblog/archive/2011/09/12/10209291.aspxIfyouneedmorearguments(e.g.youhadcodec

c++ - 内置数组大小的类型是多少?

当推导一个非类型模板参数时,比如n,n的类型必须在参数和实参之间完全匹配。所以下面的代码不会编译(至少在GCC和clang上):#includetemplatevoidf(std::arrayconst&){}intmain(){std::arrayarr;f(arr);}这是因为std::array声明为templateclassarray;而不是templateclassarray;但是,要捕获内置数组的大小,似乎任何整型都可以。以下所有关于GCC、clang和VC++的工作:templatevoidf(T(&)[n]);templatevoidf(T(&)[n]);templat

c++ - block 内变量的生命周期是多少?

Here和Here我发现block中的变量是在执行到该block时创建的,为了证明我试过这个:intmain(){{chara;printf("Addressofa%d\n",&a);}charb;printf("Addressofb%d\n",&b);}正如预期的那样,b首先被创建(因为外部block比内部block执行得更快),当执行到内部block时,a被创建。上述代码的输出:Addressofa2686766Addressofb2686767(在x86上测试(堆栈向下增长,因此首先创建具有更大地址的变量))。但是这个呢?intmain(){{chara;printf("Addr

c++ - c++ 中 std::next_permutation() 函数的时间复杂度是多少?

我想知道next_permutation函数的时间复杂度。我也可以查看它的代码吗? 最佳答案 参见http://www.sgi.com/tech/stl/next_permutation.html:Linear.Atmost(last-first)/2swaps.要查看源代码,只需查看系统的STL头文件即可。在类Unix系统上,您可能需要查看类似/usr/include/c++/4.1.2/bits/STL_algo.h的地方。 关于c++-c++中std::next_permutati

c++ - 数组初始化的时间复杂度是多少?

考虑以下两种在C或C++中初始化数组的情况:案例一:intarray[10000]={0};//Allvalues=0案例二:intarray[10000];for(inti=0;i他们都需要同样的时间吗?情况1的复杂性是什么?以及,哪个更好? 最佳答案 如果数组是静态持续时间(全局变量),我会说第一个更可取,因为它不需要任何代码-它由运行时环境初始化。如果变量是automaticduration(局部变量),哪个更好,哪个好,哪个好,取决于编译器。最有可能的是,两者将非常相似。对于所有情况,自动存储持续时间变量的复杂度都是O(n)