草庐IT

标准ACL

全部标签

c++ - 为什么 BigInt、BigNum 或任意精度算术没有出现在 STL 或 C++ 的标准库中?

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭10年前。这有什么具体原因吗?这是设计决定吗?BignumberinC++与其他搜索结果一起显示为此编写的类。不知道以后的版本会不会包含这个功能。

c++ - 为什么C++标准队列有back函数,stack没有bottom函数?

在许多非官方C++引用网站之一上,列出了std::queue的成员函数front()和back().然而,std::stack只有top()函数。堆栈没有bottom()函数是有意义的,因为那是堆栈的定义。我不明白的是,为什么C++标准委员会选择不遵循队列的定义并为队列提供back()函数,而选择遵循堆栈的定义并且不提供bottom()函数。 最佳答案 back()可能还有其他原因,但您需要它来创建队列,因为C++03的习惯用法是廉价地将“空”对象复制到容器中,然后swap将新元素与复制成本非常高的“完整”对象交换。由于移动语义,这

c++ - 使用自己的标准库在 C++ 中扫描文件

我想知道或获得线索如何在C++中使用其自己的标准库搜索目录,或者看看是否可行。目前我已经找到了几种搜索目录的解决方案,但它们都使用了一些外部库,例如这个SO问题:recursivefolderscanninginc++我们应该如何处理这个问题? 最佳答案 C++标准中没有文件系统设施。它有一个技术规范,可能会包含在未来的C++版本中。在那之前,您将不得不使用特定于平台的函数或包装它们的库。显然新提案与boost的API几乎相同,所以我建议使用boost,即使它的普遍性还不够好。 关于c+

标准二维圆拟合(matlab代码)

1.圆方程定义常规圆方程定义为(x−x0)2+(y−y0)2=r2(x-x_0)^2+(y-y_0)^2=r^2(x−x0​)2+(y−y0​)2=r2可以改写为x2+y2+ax+by+c=0.x^2+y^2+ax+by+c=0.x2+y2+ax+by+c=0.其中a=−2x0,b=−2y0,c=x02+y02−r2a=-2x_0,b=-2y_0,c={x_0}^2+{y_0}^2-r^2a=−2x0​,b=−2y0​,c=x0​2+y0​2−r22.最小能量函数定义要使得圆方程最为准确,则要是所有的点尽可能满足方程,因此需使函数FF=∑(xi2+yi2+axi+byi+c)2=0,i∈[1,

c++ - 如果 new_size 不大于旧的,C++ 标准是否保证 std::string::resize(new_size) 不会导致分配?

这个问题在这里已经有了答案:Doesthestandardguarantee,thatstd::string::resizewillnotdoreallocatememory,ifthenewsizeislessthanorequaltoastheoldone?(1个回答)关闭3年前。#include#includeintmain(){autos="hello"s;autop=&s[0];s.resize(3);assert('h'==*p);//alwaysok?}如果new_size不大于旧的,C++标准是否保证std::string::resize(new_size)不会导致分配

c++ - 标准允许#pragma 做什么?

在C++(和C)中,我们有#pragma指令,它基本上具有实现定义的效果。但是,该指令的作用是否有任何限制?(请注意,我问的是标准允许的内容,而不是真正的编译器实际执行的操作。)我确定#pragma可能会做的事情:允许选择多个编译选项之一,这些编译选项都会生成有效的C++-例如,选择多个可用ABI之一,或切换某些实现定义的选项。我猜是允许的,但我不确定:允许编译器在不发出诊断的情况下接受非法代码(例如,编译器可能决定支持新的内置类型longlonglong,但任何使用该类型的代码必须发出诊断;然后可以使用例如#pragmalonglonglong来抑制此诊断。允许编译器拒绝其他合法代码

c++ - 标准 select1st 和 select2nd

在C++11中是否有任何标准的select1st和select2st等价物?这些似乎只在GNUCPP中定义过. 最佳答案 对于get定义的所有事物:templateconstexprautoselect=[](auto&&x)noexcept->decltype(auto){returnstd::get(std::forward(x));}; 关于c++-标准select1st和select2nd,我们在StackOverflow上找到一个类似的问题: htt

c++ - C和C++标准库的关系

此问题与编程或特定语言概念没有直接关系。我的问题是我们可以使用对C的引用吗?国际标准(例如C11)提供规范引用来描述C中的任何概念图书馆C++.更具体地说,在标题中在N3797::18.3.3[c.limits]中定义Clibrary标题进行了描述。但是C标准提供关于的更全面信息的内容而不是N3797工作草案。关于Clibrary的一切在C11中定义对于C++是正确的C++11中定义的实现的Clibrary或者我们不能依赖什么C标准规定? 最佳答案 对于C标准库,C++回退到C标准并且对于C++11它回到C99而不是C11,在C++

c++ - 在 C++0x 标准中会有 unordered_map,这与 boost unordered_map 相比如何?

哪个更有效率?有什么好的基准吗? 最佳答案 C++11的std::unordered_map规范类似于基于tr1::unordered_map的boost::unordered_map。话虽这么说,还是有一些细微的差别。在C++11中添加右值引用会导致添加可能对性能有用的emplace和emplace_hint函数。C++11现已得到广泛实现,因此您应该能够开箱即用地使用std::unordered_map。C++14不会对其进行重大更改,C++17将(可能)添加insert_or_assign和try_emplace成员函数。

c++ - C++ 中是否有标准的 3d vector 类

在一个现有的项目中,我看到一个Vector_3d类,模板化,具有vector的常用操作(在代数意义上)。经过剖析,我注意到大量的时间花在了这门课上。我想知道在C++中是否有像3dvector这样的基本概念的众所周知的实现。事实上,使用vector的良好实现可能比尝试优化这个vector更容易。编辑:这是在某些对象的几何表示的上下文中。但它独立于任何可视化。我会看看是否有办法避免过于频繁地调用各种方法。我将查看建议的软件包。 最佳答案 3dvector类没有太多改进空间(基本上,点积/叉积相当容易,矩阵乘法也是如此)。如果在该类(cl