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]