asyaevloeva
@asyaevloeva

Поиск слов в векторе c++?

Мне нужно, чтобы слова из одного вектора искались в другом векторе и, если они там есть, то записывались в третий вектор

я делаю так:
vector<string> firstvect {"one", "two", "three", "four", "five"};
        vector<string> secondvect {"one", "two", "four"};
        vector<string> thirdvect;
        for(unsigned int i = 1; i<sizeof(firstvect); i++){
        if(strcmp(firstvect.at(i), secondvect)==0) //тут ошибка появляется
            thirdvect.push_back(secondvect.at(i));
        };


такая ошибка:


cannot convert '__gnu_cxx::__alloc_traits > >::value_type {aka std::__cxx11::basic_string}' to 'const char*' for argument '1' to 'int strcmp(const char*, const char*)'
if(strcmp(firstvect.at(i), secondvect) ==0)


Как правильно сделать такой поиск?
  • Вопрос задан
  • 704 просмотра
Решения вопроса 1
TrueBers
@TrueBers
Гуглю за еду
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
tsarevfs
@tsarevfs Куратор тега C++
C++ developer
strcmp нужен для сравнения С-style строк. std::string можно и нужно сравнивать оператором ==.
Потом размер вектора firstvect.size(). sizeof дает именно размер структуры в байтах, а не число элементов.
Ну вероятно придется написать цикл в цикле, чтобы найти элемент во втором векторе.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы