【问题标题】:How to compare string content of two vectors in C++如何在 C++ 中比较两个向量的字符串内容
【发布时间】:2011-12-04 10:21:56
【问题描述】:

我有两个向量,想比较它们的内容(字符串),但这不起作用:

    vector<string>inwords = getInWords();
    vector<string>killwords = getKillWords();


    vector<string>::iterator it;
    vector<string>::iterator ut;

    for(it = inwords.begin(); it < inwords.end(); it++){
     for (ut = killwords.begin(); ut < killwords.end(); ut++) {
      if (*ut == *it){
       cout << "match" << endl;
      }
     }
    } 

我也试过比较功能:

    if (killwords[u].compare(inwords[i]) == 0)

我的猜测是我需要重载 == 运算符,但我不知道该怎么做。如果你能帮助我会很好,因为我的谷歌搜索并没有真正让我到任何地方。干杯!

【问题讨论】:

  • 您要检查什么?如果向量以相同的顺序具有相同的字符串?相同的字符串以不同的顺序?如果他们至少有一个共同的字符串?还有什么?
  • 我可以从代码中看出,如果每个字符串中存在另一个字符串?
  • @Michael:既然 OP 说代码行不通,看它并不会揭示他打算做什么。
  • 我想检查 inwords 向量中的单词是否也在 killwords 向量中。 Michaels 的建议是正确的。
  • @sytycs,哪个词?您想查看第一个向量中的 any 词是否存在于另一个向量中?您的代码似乎是正确的,请检查输入或更具体地了解您遇到的问题。

标签: c++ string vector compare


【解决方案1】:

对于您尝试使用的代码,您可能需要使用std::find_first_of。如果您尝试比较(不)平等的范围,您可能需要查看std::mismatchstd::equal

对于您想要实现的其他任何事情,您最好更具体。

【讨论】:

    【解决方案2】:

    您的代码应该在两个向量之间的相交字符串上打印“匹配”,它应该可以正常工作,您可能需要检查字符串值本身,它可能包含空格等

    【讨论】:

      猜你喜欢
      • 2012-12-03
      • 1970-01-01
      • 2013-09-17
      • 1970-01-01
      • 2021-06-18
      • 2015-09-28
      • 2016-01-04
      • 1970-01-01
      相关资源
      最近更新 更多