setprecision和字符串名称空间

时间:2018-06-27 03:30:21

标签: c++ include precision stdstring

我怎么办

using std::string;

我得到一个错误,但是在包含字符串之后,它不会引发错误。与std::setprecision相同。

#include <string>
using std::string; //Throws error when string library not included
#include <iomanip>
using std::setprecsion; //Throw error when iomanip library not included

int main()
{
    //stuff
}

当我忽略#include预处理程序时,为什么会抛出错误,指出stringsetprecision不是std namespace的一部分,但是当我添加库时别?包括库之后,它们是否会以某种方式添加到std名称空间?

有点像 JavaScript 中的括号符号吗?

var obj = {
    one: 1
};

obj['two'] = 2;

1 个答案:

答案 0 :(得分:0)

这仅仅是因为您要使用的功能是在其库文件中定义的。在C中,C ++必须编写 #include 才能在程序中包含该库并使用其功能。