【问题标题】:About Comparing String With String关于比较字符串与字符串
【发布时间】:2023-03-15 02:37:01
【问题描述】:

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

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;
}

但是为什么会出现这样的错误:

 Mycode.cc:33: error: no match for 'operator==' in '(+ MuTag)->std::vector<_Tp, _Alloc>::operator[] [with _Tp = std::string, _Alloc = std::allocator<std::string>](((long unsigned int)i)) == seedTag. std::basic_string<_CharT, _Traits, _Alloc>::operator[] [with _CharT = char, _Traits = std::char_traits<char>, _Alloc = std::allocator<char>](((long unsigned int)i)

我该如何解决?

【问题讨论】:

    标签: c++ string comparison


    【解决方案1】:

    您正在尝试将字符串 (MuTag[i]) 与字符 (seedTag[i]) 进行比较。

    【讨论】:

      【解决方案2】:

      正如亚历山大所说,您正在比较一个字符串和一个字符。

      可悲的是编译器已经告诉你了,只是它用 ISO-STL-TEMPLATE 加密来加密,perl 更难阅读!

      您可能希望查看this script 以解密 C++ STL 错误消息。

      【讨论】:

        【解决方案3】:

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

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

        当您进行比较时:

        MuTag[i] == seedTag[i]
        

        正如其他人所说,您不是在比较同一类型。

        修复它:

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

        【讨论】:

          【解决方案4】:
          vector <string> & MuTag
          

          是字符串的集合,而

          string seedTag
          

          是字符的集合。所以在你的比较中

          MuTag[i] == seedTag[i]
          

          你实际上是在比较这样的东西

           "aaaaa" == 'a'
          

          这绝对是不正确的。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2012-12-16
            • 2021-08-05
            • 1970-01-01
            • 1970-01-01
            • 2011-08-17
            • 2013-08-06
            • 1970-01-01
            相关资源
            最近更新 更多