草庐IT

标准化

全部标签

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++11标准有没有全新的序列化和反射库?

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

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

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

c++ - 选择什么标准容器(如果有)?

我需要一些内存管理,希望我可以将其基于一些std容器。我的要求是:元素只有一个默认构造函数(没有复制,没有移动,没有别的)容器可以通过一小块连续的元素扩展(在后面)我什至可以粗略地知道我总共需要多少元素,甚至可以随时知道最终需要多少元素。不过,这些都是估计值。我真的不需要迭代器,但获取元素运行编号的方法会很方便。所以,我需要一些可以通过添加block来扩展的东西,比如std::deque.但是用std::deque,我不能保证扩展,比如说,8个元素,给我一个连续的block。和std::deque没有capacity所以我不能从std::deque中“适应”.这意味着我必须自己编写,对

c++ - 删除右值,保留左值引用(标准类型特征可用?)

我正在尝试编写一个函数,以std::tuple的形式返回可变参数包的子集。理想情况下,该函数应该没有运行时开销(没有不必要的拷贝),并且它应该允许用户访问lvalue引用并修改它们。应维护值类型、lvalue引用和constlvalue引用。临时对象(rvalue引用)应“转换”为值类型以避免创建无效引用(对临时对象的引用)。期望结果示例:intlr=5;constint&clr=lr;autot=make_subpack_tuple(lr,clr,5);static_assert(is_same>{},"");//Ok,modifieslr:std::get(t)=10;//Comp