我有一個類,它包含一個在編譯時未知的數組。該數組在構造函數中初始化。然後,我有檢查的其他功能,如果一個元素是數組中:什麼是std :: find這個錯誤的優雅解決方案?
class myClass
{
int tab[];
public:
myClass(int array[], int length)
{
std::copy(array, array + length, tab)
}
void myFunction()
{
int x = 8;
int *ptr = std::find(std::begin(tab), std::end(tab), tdc_x);
if (ptr) /* here goes my code */
}
};
我得到了以下錯誤:
error: no matching function for call to ‘begin(int [0])’
出了什麼問題上面這段代碼?我知道我不能在指針中使用std :: find,但是我的數組是一個數組,而不是一個腐朽的指針。
我跟着this的例子。我還包括算法頭。我究竟做錯了什麼?
我在C++ 11中編譯我的代碼。
編輯:我現在明白了。但我怎樣才能以優雅的方式做我想做的事?
- If I use a pointer instead of the empty array, I won't be able to use std::find.
- if I give my array an arbitrary size, I won't be able to copy a bigger array. What should I do?
'INT標籤[];'你不能有空數組。 –
@πάνταῥεῖ,我的數組不是空的,它還沒有被初始化。編譯器不會抱怨。你能否建議我想要實現的替代解決方案? – user2738748
你是從哪裏初始化它的? –