- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
为什么 header <string>
的那些C++11新函数( stod
, stof
, stoull
) 不是 string
的成员函数类(class)?
不是更符合 C++ 编写 mystring.stod(...)
而不是 stod(mystring,...)
?
最佳答案
令许多人感到惊讶的是,C++ 不是面向对象的语言(与 Java 或 C# 不同)。
C++ 是一种多范式语言,因此尽可能使用最好的工具来完成工作。在这种情况下,自由函数 是合适的工具。
指南:优先使用非成员非友元函数而不是成员函数(来自 Efficient C++,第 23 项)
原因:成员函数或友元函数可以访问类内部,而非成员非友元函数则不能;因此使用非成员非友元函数增加了封装。
异常(exception):当成员函数或友元函数提供显着优势(例如性能)时,尽管有额外的耦合,但仍值得考虑。例如,尽管 std::find
工作得很好,关联容器如 std::set
提供了一个成员函数 std::set::find
在 O(log N) 而不是 O(N) 中工作。
关于c++ - 为什么 C++11 字符串新函数(stod、stof)不是字符串类的成员函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21426925/
在运行使用Visual Studio 2013编译的此示例时,会引发“参数无效”错误。。据我所知,VS2013使用的是C++11标准,并且使用(从C++11开始的)标签和明确列出的(不区分大小写的)I
我的一个 friend 把他的程序发给我。他使用"stod" 函数将字符串转换为 double 。还有其他可能做这样的事情吗? 我的编译器显示错误“stod was not declared in t
这个问题在这里已经有了答案: Easiest way to convert int to string in C++ (29 个回答) Converting Input string to float
#include #include using namespace std; int main() { double var; string word("20.njhggh");
这个问题在这里已经有了答案: Why are floating point numbers inaccurate? (5 个答案) 关闭 5 年前。 我有一个字符串,我想使用 std::stod 将
这个问题在这里已经有了答案: cygwin g++ std::stoi "error: ‘stoi’ is not a member of ‘std (5 个答案) 关闭 6 年前。 我试图在 cy
我有一个代码让用户输入运输重量。我正在将这个数字转换为数学的 double ,并且使用 std::stod(); 它可以完美地工作;当用户未输入有效条目时,问题就出现了。我是 C++ 的新手,在 C#
我正在读取一个带有字符串的值,然后将其转换为 double 值。我希望诸如 2.d 之类的输入因 std::stod 而失败,但它会返回 2。有没有办法使用 std::stod 确保输入字符串中完全没
我正在尝试编译这个 example code #include // std::cout #include // std::string, std::stod int main ()
我正在编写一个简单的直线计算器。例如,用户可以输入两个方程(字符串),例如 y=5x+3 和 y=-3x+6。这个计算器最基本的特点是它会返回这两条线的交点。 我似乎无法弄清楚的障碍是如何将字符串解析
我正在为一个 C++ 项目工作,我需要将字符串转换为 double 字符串,但我一直收到错误“stod”未在此范围内声明。快速回复将不胜感激! #include #include #include
我正在尝试将键值参数作为 string 存储在名为 ModelConfig 的类中。然后我想自动将这些值转换为特定类型,使用自定义转换函数或使用标准函数 stod、stof、stoi 和类似。 如果我
有没有办法调整 std::stod() 以增加(字符串到 double )转换中的小数位数并强制它使用美国语言环境? 我有一个可以在控制台或图形用户界面模式下运行的 Qt 应用程序: if (opt-
这个问题在这里已经有了答案: Problems with std::stoi, not working on MinGW GCC 4.7.2 (2 个答案) 关闭 7 年前。 我无法编译以下代码 a
我运行这个程序, #include int main(int argc, char *argv[]) { std::cout << std::stod("5.000e-M1") << std
我试图在逗号是小数分隔符的德国语言环境中一起使用 boost::locale 和 std::stod 。考虑这个代码: boost::locale::generator gen; std::local
#include #include #include using namespace std; int main(){ stringstream ss; double ad =
我在 Sublime Text 2 中运行代码。它向我显示错误: item->open = std::stod(temp); 错误是: error: no member named 'stod' in
所以我还是 C++ 的新手,我想看看我是否可以使用下面的代码打印基于用户输入的结果。 代码: /* Input Example */ // Initialization // Euler's Cons
我在当前项目中收到意外行为。 我使用 DICOM 库 dcmtk 从一些 dicom 文件中读取信息,并使用 Qt 来显示图像。 在信息提取过程中,我必须转换格式为“\”(Dicom Tag Pixe
我是一名优秀的程序员,十分优秀!