我不能在Qt中用C++代码定义字符串

我不能在Qt中用C++代码定义字符串,c++,qt,import,C++,Qt,Import,我的代码如下 #include "test.h" #include "string" #include "iostream" using namespace std::string::find; test::test(){ string str ("ffs test ffs"); string str2 ("test"); if (str.find(str2) != std::string::npos) { std::cout << "fo

我的代码如下

#include "test.h"
#include "string"
#include "iostream"
using namespace std::string::find;


test::test(){
    string str ("ffs test ffs");
    string str2 ("test");
    if (str.find(str2) != std::string::npos) {
        std::cout << "found" << "\n";
    } else {
        std::cout << "not found" << "\n";
    }
}

我的问题是,当试图在C++文件中定义一个字符串时,Qt表示未知的类型名“string”。同样在第4行,我的“导入”突出显示字符串,就好像它不存在一样,尽管它是编辑器在我键入时向我建议的一个选项。我做错了什么?我发现的一切都是试图解决问题,将东西传递给QString,而据我所知,与我的问题无关。我在所有导入上都尝试了导入include和include thing这两种类型,但似乎没有什么区别。

使用std::string而不是string


不要使用using namespace当然在您的情况下,它不是一个名称空间,所以这是另一个错误,用于系统标题。

在包含适当的标题iostream、string等后,您可以编写:

using std::string;
这将只将名称空间std中的字符串引入程序。 如果希望避免到处键入std::string,那么可以这样做。您也可以对cout、cin等流对象执行此操作


在代码中使用Scope operator::并手动访问std类

std::string

它会帮助你的

这与Qt无关。你试过像include这样合适的include吗?是的,我试过两种方法,都是完全相同的错误。这是一个有趣的答案。你能解释一下为什么不应该使用名称空间吗?
using std::cout;
using std::cin;
std::string