這是不正確的算法。
你可以編寫自己的函數,它會是這樣的。 注意a[]
函數參數會被編譯器替換*a
template<typename T>
bool arraycmp(T *a, size_t a_size, T *b, size_t b_size)
{
if(a_size != b_size) // If sizes is not same, we know that arrays not equal
return false;
for(size_t i = 0; i<a_size; ++i)
{
if(a[i]!=b[i]) // Just do check, and if array element mismatch return false
return false;
}
return true;
}
或類似這樣的,一個size_t
template<typename T>
bool arraycmp(T *a, T *b, size_t size)
{
for(size_t i = 0; i<size; ++i)
{
if(a[i]!=b[i]) // Just do check, and if array element mismatch return false
return false;
}
return true;
}
或者只是使用庫函數memcmp
對於陣列'A'用'i'索引,你正在比較從'k = 0'到'k
如果你使用['std :: array'](http://en.cppreference.com/w/cpp/container/array)它有它[比較「內置」](http://en.cppreference.com/w/cpp/container/array/operator_cmp)。 –
問題是:數組中的元素是否以相同的順序排列?如果是,那麼你只需要一個循環。如果不是,那麼您需要一個額外的數組來跟蹤'k'數組中的哪些項目已被使用。要麼,要麼排列數組,以便它們*的排列順序相同。 – user3386109