0
交差点の2つのベクトルをチェックする最良の方法を探しています。Boost.Test - 交差点上の2つのベクトルをチェックする方法?
for (auto const & first: first_vector)
for (auto const & next: next_vector)
if first == next
return false;
のようなネストされたループは、仕事をすることができますが、それはBoost.Testっぽい道のようには見えません。ユニットテストで事前に定義のみテストケースがBOOST_CHECK_EQUAL_COLLECTIONS
あるようBoost.Testを見に多くのことができます更新
BOOST_FIXTURE_TEST_CASE(paths,fixture_t)
{
for(int i=0,j=vids.size(); i!=j; i++)
{
for(int p=0,q=vids.size(); p!=q; p++)
{
if (i == p)
{
continue;
}
if (i < p)
{
BOOST_TEST_CONTEXT("Equal match at positions " << i << " and " << p)
BOOST_TEST(vids[i] != vids[p]);
}
}
}
}
['std :: set_intersection'](http://en.cppreference.com/w/cpp/algorithm/set_intersection)? – NathanOliver
パフォーマンスは、両方のベクトルのサイズに大きく依存します。 'std :: set_intersection'で十分でない場合は、理由を説明する必要があります。ヒント:両方のベクトルが大きい場合は、それらのうちの1つからBSTを作成することができます。これにより、処理速度が大幅に向上します。 – erip
'std :: set_intersection'は問題ありませんが、' BOOST_CHECK_EQUAL_COLLECTIONS'のように 'Boost.Test'から対応する答えを得る方法(値と正確な位置)はありますか? – user1587451