草庐IT

C++标准

全部标签

c++ - 使用标准库的概率密度函数?

能够使用std生成不同概率分布的随机数很棒...现在,有没有什么方法可以使用标准库来计算给定分布及其参数的一组数字的概率?我知道我可以自己编写任何分布的概率密度和质量函数(请参见下面的单个随机变量示例),但如果可以的话,我宁愿使用标准库。longdoubleexponential_pdf(longdoublex,longdoublerate){if(x 最佳答案 自C++11起,标准库包含一堆可用于随机数生成的分布。遗憾的是,标准库中没有计算概率密度、累积分布或分位数函数的功能。至于为什么这没有包含在标准库中,请参阅workingp

c++ - 如何使用常规构造函数模式初始化 C++ 11 标准容器?

是否可以将下面的长显式初始化列表替换为某个生成它的模板?std::arrayfoos={{{0,bar},{1,bar},{2,bar},{3,bar},{4,bar},{5,bar},{6,bar},{7,bar},}};现在这段代码之所以有效,是因为我们有constexprintn_foos=8。对于任意大的n_foos如何做到这一点? 最佳答案 以下解决方案使用C++14std::index_sequence和std::make_index_sequence(canbeeasilyimplementedinC++11progr

c++ - 在早期标准中使用为 future 标准批准的 C++ 技术规范是否安全?

FilesystemTechnicalSpecification(TS)最近已合并到C++17标准中。同样的TS也可用于C++14,但在这种情况下,它在技术上只是“实验性的”。然而,它已被批准用于C++17这一事实让我认为它已经足够成熟并且可以安全使用。在处理将来很可能会升级到C++17的C++14项目时,假设我使用的编译器在两个版本上都支持它,您是否建议不要使用“实验性”TS,考虑到它会正式成为下一个标准的一部分吗?我的问题当然扩展到任何已在未来C++版本中接受并且可用于早期标准的TS。 最佳答案 真正的问题是是否有人实现了它,而

c++ - std::string::replace 标准实现?

在我能想到的每一种语言中,除了C++,函数Replace本质上是替换字符串的所有部分,而C++的字符串类不支持像下面这样的简单操作:strings="HelloWorld";s=s.Replace("Hello","Goodbye");echos;//Prints"GoodbyeWorld"这似乎是任何类型的字符串替换函数的最常见用法,但在C++中似乎没有标准的替换函数。我在这里遗漏了什么吗?编辑:我知道标准库中没有像这样的内置替换函数——我想知道是否有或多或少的标准实现是由标准算法或类似的东西制成的。 最佳答案 你没有遗漏任何东西

c++ - C++(旧/新标准)中最大的数字原始数据类型是什么

我对旧/新有点困惑,所以这是我的问题。新旧C++标准中最大的原始数值数据类型是什么?(整数和float)问候并提前致谢糟糕 最佳答案 在1998年的标准中,longint和unsignedlongint是至少与标准的任何其他整数类型一样大的类型(§3.9.1/2-3).(它们可能是也可能不是“最大”类型。例如,longint可能与int大小相同。就此而言,char的大小也可以相同。)浮点longdouble提供的精度至少与其他两种浮点类型(§3.9.1/8)一样多。在C++0x标准草案(n3092)中,类型为longlongint和

c++ - 基于没有 Boost 的标准模板库的 TimerCallback 函数

是否有使用STL实现的TimerCallback库。我无法将Boost依赖项引入我的项目。定时器到期时应该能够回调注册的函数。 最佳答案 标准库中没有特定的计时器,但很容易实现一个:#includetemplatevoidtimer(Durationconst&d,Functionconst&f){std::thread([d,f](){std::this_thread::sleep_for(d);f();}).detach();}使用示例:#include#includevoidhello(){std::cout请注意该函数是在另

c++ - 两个文件中相同函数/全局变量的不同声明

在C和C++的情况下,我有2个关于相同函数和全局变量在两个文件中的不同声明的问题。不同的函数声明考虑以下代码片段:file_1.cvoidfoo(inta);intmain(void){foo('A');}file_2.c#includevoidfoo(chara){printf("%c",a);//prints'A'(gcc)}正如我们所见,原型(prototype)不同于位于file_2.c,但是,该函数打印预期值。如果涉及到C++,上面的程序由于undefined而无效在链接时引用foo(int)。这可能是由存在其他函数签名-与C相比,其中函数名称不包含任何额外的字符表明函数参数

c++ - C++11标准有没有全新的序列化和反射库?

最近,boost序列化对C++11标准库中的内容进行改进并非不可能。同时,我的项目需要序列化和反射库。我四处寻找,没有找到任何东西。因此我想知道是否有现成的(嗯......它必须是全新的才能与C++11兼容,而不是老化的MFC)或关于制作我自己的任何基本、实用和明确的指导.据我所知,基本原理是使用STANDARD中的那些助手来推断类型,已经在没有std命名空间的boost序列化中被采用。这对您来说可能就像从鸡蛋中挑出鹅卵石一样微不足道,但我就是无法让自己对boost感到满意。 最佳答案 要真正回答这个问题,尽管有点晚了:现在有cer

c++ - 函数参数列表中用于输出的参数应该在哪里

我正在尝试制定有关在我们的C/C++代码中使用函数参数输出的政策。我很清楚该策略应该指示用于输出的所有参数应该在函数参数列表的末尾或开头组合在一起,但我不确定是否有充分的理由更喜欢这两者地点。你知道有什么理由更喜欢在开头或结尾对它们进行分组吗? 最佳答案 只是我个人的意见,但是如果它反射(reflect)了复制或赋值语义,那么我更愿意将它们放在开头,就像C标准库中的字符串和某些stdio函数所做的那样:p>strcpy(dest,src);看起来像dest=src;和fgets(buf,sizeof(buf),file);看起来像b

c++ - C++11标准中这条语句的含义是什么?

从C++11标准的段落§5.2.2/1中提取的这句话中的粗体字符是什么意思?Therearetwokindsoffunctioncall:ordinaryfunctioncallandmemberfunction(9.3)call.Afunctioncallisapostfixexpressionfollowedbyparenthesescontainingapossiblyempty,comma-separatedlistofexpressionswhichconstitutetheargumentstothefunction.Foranordinaryfunctioncall,th