Как сравнить строковое содержимое двух векторов в C ++ - PullRequest
0 голосов
/ 04 декабря 2011

У меня есть два вектора, и я хочу сравнить их содержимое (строки), но это не работает:

    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)

Я думаю,что мне нужно перегрузить оператор ==, но я не уверен, как это сделать.Было бы неплохо, если бы вы мне помогли, потому что мои поиски в Google никуда не делись.Ура!

Ответы [ 2 ]

3 голосов
/ 04 декабря 2011

Для того, что вы пытаетесь с помощью своего кода, вы можете использовать std::find_first_of.Если вы пытаетесь сравнить диапазоны для (не) равенства, вы можете взглянуть на std::mismatch или std::equal.

Для всего, что вы хотите достичь, лучше быть более конкретным.

0 голосов
/ 04 декабря 2011

Ваш код должен напечатать "match" на пересеченных строках между двумя векторами, он должен нормально работать для пересечения, вам может потребоваться проверить само значение строки, оно может содержать пробелы или около того

...