Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/129.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++ 如何将字符串与向量值进行比较?_C++_String_C++11_Vector - Fatal编程技术网

C++ 如何将字符串与向量值进行比较?

C++ 如何将字符串与向量值进行比较?,c++,string,c++11,vector,C++,String,C++11,Vector,如何将向量中的字符串与向量中的值进行比较 我尝试了str,错误显示在下面 矢量数据; 向量pdat; dat=my(); 对于(int b=2;b比较。这是因为=< /COD>操作符被重载,以便对 STD::String < /Calp>S.< /P>进行字符串比较。 if (dat[b] == "String\n") { 如果您处理的是C++字符串,则不需要任何字符串Str*函数,因此您也可以不包括它。 < P>简单地使用运算符==/COD>比较一个 STD::String < /C> >

如何将向量中的字符串与向量中的值进行比较

我尝试了str,错误显示在下面

矢量数据;
向量pdat;
dat=my();
对于(int b=2;b//cout
std::string
与普通的
=
进行比较。这是因为
=
操作符被重载以对
std::string
进行字符串比较

if (dat[b] == "String\n") {

如果您处理的是C++字符串,则不需要任何字符串Str.h函数,所以您也可以不包括它。

<代码> STD::String 与Prime<代码>=< /Cord>比较。这是因为<代码>=< /COD>操作符被重载,以便对<代码> STD::String < /Calp>S.< /P>进行字符串比较。
if (dat[b] == "String\n") {

如果您处理的是C++字符串,则不需要任何字符串Str*函数,因此您也可以不包括它。

< P>简单地使用<代码>运算符==/COD>比较一个<代码> STD::String < /C> >和<代码> const char */COD>:

if(dat[b] == "String\n"){    //
    pdat.push_back(dat[b]);
}
对于记录,此处使用的确切重载是函数模板:

template< class CharT, class traits, class Alloc >
bool operator==( const basic_string<CharT,Traits,Alloc>& lhs, const CharT* rhs );
因此,您可以(但不应该)在
c_str()
成员函数的帮助下调用它:

if(!strcmp(dat[b].c_str(), "String\n") 
...

只需使用
operator==
on来比较
std::string
const char*

if(dat[b] == "String\n"){    //
    pdat.push_back(dat[b]);
}
对于记录,此处使用的确切重载是函数模板:

template< class CharT, class traits, class Alloc >
bool operator==( const basic_string<CharT,Traits,Alloc>& lhs, const CharT* rhs );
因此,您可以(但不应该)在
c_str()
成员函数的帮助下调用它:

if(!strcmp(dat[b].c_str(), "String\n") 
...
strcmp()
需要2个
const char*
s,但
dat[b]
是一个
字符串,因此您不能将苹果与苹果进行比较

你可以这样做

if(!strcmp(dat[b].c_str(),“String\n”){

if(dat[b]=“String\n”){

第二种是C++方法。<>代码> STRMP()期望2代码> const char */COS> s,但是<代码> dAT[b] < /Cord>是String < /C> >,所以你不把苹果和苹果比较。

你可以这样做

if(!strcmp(dat[b].c_str(),“String\n”){

if(dat[b]=“String\n”){

第二个是C++的方法。