首页 > 解决方案 > setprecision 和字符串命名空间

问题描述

我怎么会

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预处理器时,为什么它会抛出错误说stringor setprecisionis not part of std namespace,但是当我添加库时它们却没有?包含库后,它们是否以某种方式被添加到 std 命名空间?

它会像JavaScript中的括号符号吗?

var obj = {
    one: 1
};

obj['two'] = 2;

标签: c++includeprecisionstdstring

解决方案


这仅仅是因为您尝试使用的函数是在它们的库文件中定义的。在 C 和 C++ 中,您必须编写#include以将库包含在您的程序中并使用其功能。


推荐阅读