Учитывая два вектора целых чисел, как определить, есть ли какой-либо элемент из 1-го вектора во втором?Найти векторный элемент во втором векторе
ответ
Я думаю, что-то, как это должно работать:
std::vector<int> v1,v2;
if(std::find_first_of(v2.begin(),v2.end(),v1.begin(),v1.end()) != v2.end())
std::cout << "found!\n";
это именно то, что я ищу – dimba
Хотя это может выглядеть хуже по сложности 'O (v1.size() * v2.size())', это не имеет большого значения на небольших наборах, и вы не должны заранее (сортировать) ваши векторы. –
Вы могли бы взять на себя set_intersection обоих векторов, а затем проверить, если в результате пересечение пусто:
std::sort(v1.begin(), v1.end());
std::sort(v2.begin(), v2.end());
std::set_intersection(v1.begin()
, v1.end()
, v2.begin()
, v2.end()
, std::back_inserter(v3));
bool containsElements = !v3.empty();
set_intersection
можно найти в #include <algorithm>
Для set_intersection
работать оба вектора должны быть сначала отсортирован.
Стоит отметить, что v1 и v2 должны быть отсортированы для этого. –
Стоит отметить, что вы должны предпочесть 'v3.empty()' to 'v3.size() == 0'. –
@Charles Bailey и @Matthie M .: Я добавил оба из них, спасибо. –
Я думаю, что-то вроде этого:
bool contains(const std::vector<int>& vec, int val){
for(std::vector<int>::const_iterator it=vec.begin(); it!=vec.end(); ++it){
if(*it==val){
return true;
}
}
return false;
}
bool contains(const std::vector<int>& from, const std::vector<int>& in){
for(std::vector<int>::const_iterator it=from.begin(); it!=from.end(); ++it){
if(contains(in, *it)){
return true;
}
}
return false;
}
// Example
std::vector<int> a;
std::vector<int> b;
a.push_back(2);
a.push_back(1);
b.push_back(0);
b.push_back(1);
bool contains = contains(a, b);
- 1. Как найти элемент в векторе?
- 2. Удалить векторный элемент использовать условие в векторе <bool>
- 3. Selenium не идентифицирует элемент во втором тесте
- 4. Выберите элемент списка во втором щелчке
- 5. Найти первый пропущенный элемент в векторе
- 6. Как найти следующий элемент в векторе C++
- 7. Как найти структурный элемент в двухмерном векторе?
- 8. Найти элемент в векторе и удалить его
- 9. Найти определенный элемент кортежа в векторе кортежей?
- 10. Как найти максимальный элемент в векторе (C++)?
- 11. Как найти элемент в форсированном векторе
- 12. Найти элемент в векторе со свойством
- 13. Векторный элемент, выводящий мусор
- 14. Итерационный векторный элемент объекта
- 15. Создать векторный элемент из элементов других векторов
- 16. getline() не работает во втором вызове
- 17. Ищите элемент в векторе
- 18. Найти рисунки в числовом векторе
- 19. найти в векторе enum
- 20. Python - найти максимальное значение во втором столбце вложенного списка
- 21. найти в векторе структуры
- 22. Проверьте, существует ли элемент в векторе R
- 23. Найти и нажимать элемент в векторе тем же способом
- 24. Как удалить векторный элемент указателем?
- 25. Назначить векторный элемент переменной char
- 26. C++ минимальный элемент в векторе
- 27. Перемешивание двух списков вместе без повторений во втором списке
- 28. Обрезка объекта, векторный элемент вне области видимости
- 29. JQuery Selector: элемент count с атрибутом во втором tr
- 30. Как ссылаться на второй текстовый элемент во втором svg
ли они сортируются, они могут быть отсортированы в месте, или они должны оставаться в своем течении заказ? –
Это домашнее задание? Если это так, он должен быть помечен как таковой. – Andres
У вас есть сложности? – philsquared