C++ 关于比较字符串与字符串

C++ 关于比较字符串与字符串,c++,string,comparison,C++,String,Comparison,我试着在字符串类型下进行逐字符比较, 使用以下代码: vector <int> getQuality(string seedTag, vector <string> &MuTag) { vector <int> Quals; for (unsigned i = 0; i<MuTag.size(); i++) { Quals.push_back(-40); cout <<

我试着在字符串类型下进行逐字符比较, 使用以下代码:

vector <int> getQuality(string seedTag, vector <string> &MuTag) { 

    vector <int> Quals;  

     for (unsigned i = 0; i<MuTag.size(); i++) { 
         Quals.push_back(-40);
         cout << MuTag[i] << " " << seedTag[i] << endl;

         if (MuTag[i] == seedTag[i]) { // This line 33 with error
           Quals.push_back(40);
         }


     }

     return Quals;
}
vector getQuality(字符串seedTag、vector和MuTag){
矢量Quals;

对于(unsigned i=0;i您正在尝试比较字符串(MuTag[i])和字符(seedTag[i])。

正如Alexander所说,您正在比较字符串和字符

可悲的是,编译器已经告诉您,只有它用ISO-STL-TEMPLATE加密对其进行了加密,这比perl更难阅读

< P> >您可能想查看对C++ STL错误消息的解密。

vector <string> & MuTag
是字符的集合。所以在你的比较中

MuTag[i] == seedTag[i]
你真的在比较这样的东西吗

 "aaaaa" == 'a'

这绝对是不正确的。

我知道很多其他人都对导致编译错误的原因做出了回应,所以让我回顾一下,然后提出一个解决方案:

seedTag是一个字符串,根据定义,它是字符的有序集合。 MuTag被定义为字符串向量:字符串的有序集合

进行比较时:

MuTag[i] == seedTag[i]
正如其他人所说,你不是在比较同一种类型

要修复它:

从外观上看,您希望将MuTag中的每个值与seedTag进行比较。如果确实如此,只需去掉“seedTag[i]”中的[i]

 "aaaaa" == 'a'
MuTag[i] == seedTag[i]