Подсчитайте повторяющиеся элементы двух двумерных массивов ⇐ C++
Подсчитайте повторяющиеся элементы двух двумерных массивов
Я создаю функцию, которая подсчитывает количество повторяющихся элементов в двух векторных массивах.
Наиболее эффективное решение, которое мне удалось придумать, приведено ниже.
Не могли бы вы помочь мне сделать это более эффектно?
Спасибо!
std::arrayprocessa_acertos(const std::vector &_combs, const std::vector &_results) { std::array acertos{{0, 0, 0, 0, 0}}; std::for_each(std::execution::par_unseq,_results.begin(),_results.end(),[&_combs, &acertos](const std::array &ar1){ std::for_each(std::execution::par_unseq,_combs.begin(),_combs.end(),[&acertos, &ar1](const std::array &ar2) { переключатель (count_isin(ar1, ar2)) { случай 11: ++acertos[0]; перерыв; случай 12: ++acertos[1]; перерыв; случай 13: ++acertos[2]; перерыв; случай 14: ++acertos[3]; перерыв; случай 15: ++acertos[4]; перерыв; } }); }); возврат сертификатов; } int count_isin(const std::array& _array1,const std::array& _array2) { авто it1 = _array1.begin(); авто it2 = _array2.begin(); число интервалов = 0; while (it1 < _array1.end() && it2 < _array2.end()) { если (*it1 < *it2) { ++it1; } else if (*it1 > *it2) { ++it2; } еще { считать++; ++it1; ++it2; } } счетчик возврата; }
Я создаю функцию, которая подсчитывает количество повторяющихся элементов в двух векторных массивах.
Наиболее эффективное решение, которое мне удалось придумать, приведено ниже.
Не могли бы вы помочь мне сделать это более эффектно?
Спасибо!
std::arrayprocessa_acertos(const std::vector &_combs, const std::vector &_results) { std::array acertos{{0, 0, 0, 0, 0}}; std::for_each(std::execution::par_unseq,_results.begin(),_results.end(),[&_combs, &acertos](const std::array &ar1){ std::for_each(std::execution::par_unseq,_combs.begin(),_combs.end(),[&acertos, &ar1](const std::array &ar2) { переключатель (count_isin(ar1, ar2)) { случай 11: ++acertos[0]; перерыв; случай 12: ++acertos[1]; перерыв; случай 13: ++acertos[2]; перерыв; случай 14: ++acertos[3]; перерыв; случай 15: ++acertos[4]; перерыв; } }); }); возврат сертификатов; } int count_isin(const std::array& _array1,const std::array& _array2) { авто it1 = _array1.begin(); авто it2 = _array2.begin(); число интервалов = 0; while (it1 < _array1.end() && it2 < _array2.end()) { если (*it1 < *it2) { ++it1; } else if (*it1 > *it2) { ++it2; } еще { считать++; ++it1; ++it2; } } счетчик возврата; }
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как получить массивы скалярных произведений внутри двух двумерных массивов?
Anonymous » » в форуме Python - 0 Ответы
- 32 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Объединить данные строк из двух двумерных массивов, связанных ключами первого уровня.
Anonymous » » в форуме Php - 0 Ответы
- 17 Просмотры
-
Последнее сообщение Anonymous
-