Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/124.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ std::find无法使用std::string_C++_String_Find_C++17 - Fatal编程技术网

C++ std::find无法使用std::string

C++ std::find无法使用std::string,c++,string,find,c++17,C++,String,Find,C++17,我有一个很奇怪的问题。我尝试使用width,但在Visual Studio 2017中编译时出现以下错误: Error C2446: '==': no conversion from 'const char *' to 'int' c:\program files (x86)\microsoft visual studio\2017\enterprise\vc\tools\msvc\14.12.25827\include\xutility:3481 生成问题的代码: #include <

我有一个很奇怪的问题。我尝试使用width,但在Visual Studio 2017中编译时出现以下错误:

Error C2446: '==': no conversion from 'const char *' to 'int'
c:\program files (x86)\microsoft visual studio\2017\enterprise\vc\tools\msvc\14.12.25827\include\xutility:3481
生成问题的代码:

#include <algorithm>
#include <string>

int main(int argc, char **argv)
{
    std::string s("Just a test string");
    auto itr = std::find(s.begin(), s.end(), "t");
}

由于需要(
std::string::value\u type
)的值类型,因此只能向其传递
char
char
s由单引号分隔,而不是双引号分隔)。如果您想在
std::string
中查找字符串,请使用字符串是字符数组,而不是字符串数组您的意思是我必须提供字符数组,而不是const char*或std::string?我的意思是您应该阅读文档;)。查找也允许在字符串中查找字符串的
std::string::find
。请注意,这与只允许在container@feareoc--我有一个很奇怪的问题--我希望海报不要以这个短语开头。您的问题并不奇怪——类型为
T
的容器要求您搜索
T
。由于
std::string
包含类型
char
,因此可以指定
char
。带引号的字符串文字不是
char
。另请参见
Error C2678: binary '==': no operator found which takes a left-hand operand of type 'char' (or there is no acceptable conversion) 
c:\program files (x86)\microsoft visual studio\2017\enterprise\vc\tools\msvc\14.12.25827\include\xutility:3481