次の C++ 関数があります。
std::vector<int> findPoss (std::vector<int>& possRow, std::vector<int>& possCol)
{
std::vector<int> poss;
for (int a = 0; a < 9; a++)
for (int b = 0; b < 9; b++)
if (possRow[a] == possCol[b])
poss.push_back(possRow[a]);
return poss;
}
2 つのベクトルを取り、両方の入力ベクトルで見つかったすべての要素を含むベクトルを返す必要があります。
ただし、返されるベクトルには常に 1 が含まれます。たとえば、次のように入力した場合:
std::vector<int> possRow;
for (int a = 0; a < 9; a++) possRow.push_back(a);
std::vector<int> possCol;
for (int b = 0; b < 9; b += 2) possCol.push_back(b);
findPoss(possow, possCol)
これは次のように返されます。
(0, 1, 2, 4, 6, 8)
これはなぜですか?
また、私の関数には、両方のループを 1 つにfindPoss
含む組み込み関数はありませんね。for