【问题标题】:C++11 to_string() function, where? [closed]C++11 to_string() 函数,在哪里? [关闭]
【发布时间】:2011-11-23 05:04:15
【问题描述】:

参见N3242 Working Draft of C++11,第 21.5 章数值转换。

有一些有用的函数,例如提到的string to_string(int val);,但我不明白它们是如何被调用的。谁能给我一个例子吗?

【问题讨论】:

  • 您不了解编译器如何调用它们,或者您不了解它们的一般调用方式?
  • 我的编译器是 GNU 4.5.2,它不会在 std:: 或其他任何地方“看到”它们。然而它们在 bits/basic_string.h 中。

标签: c++ c++11


【解决方案1】:

这些函数在标题<string> 中。您只需像调用任何其他函数一样调用它们:

#include <string>
std::string answer = std::to_string(42);

GCC 4.5 already supports those functions,您只需要使用-std=c++0x 标志进行编译。

【讨论】:

    【解决方案2】:

    当然:

    std::string s = std::to_string(123);  // now s == "123"
    

    这些函数在内部使用sprintf(或等效函数)。

    【讨论】:

    • 我以为他们会使用 stringstream。
    • @graham.reeds :出于性能原因,我没有看到任何实现。
    【解决方案3】:

    它们像任何其他函数一样被调用:

    int number = 10;
    std::string value;
    value = std::to_string(number);
    std::cout << value;
    

    要调用它们,您需要一个支持草案建议的 C++ 编译器(VS2010 和 GCC4+ 我认为支持它们)。

    【讨论】:

    • 好的。我想我需要升级我的编译器。
    • @catfish_deluxe_call_me_cd 不,您不需要升级。你一定是做错了什么。
    • 我知道这不是技术支持论坛,但有其他人使用 MinGW 来测试吗?
    猜你喜欢
    • 2017-12-12
    • 2011-04-03
    • 1970-01-01
    • 2010-09-19
    • 1970-01-01
    • 2012-08-30
    • 2014-04-26
    • 1970-01-01
    • 2020-11-18
    相关资源
    最近更新 更多