在我的主要,我稱爲函數compute_entropy,我給它一個這樣的載體: float entropy = h.compute_entropy(input_pic [0],& Symbol_table);指針和通過引用傳遞C++
在實現函數本身(在h.cpp中),我不應該改變它所需要的參數vector * prob ..我怎樣才能訪問prob的數據?
float compute_entropy(vector<Symbol>* prob)
{
float ent = 0;
vector<Symbol>* prob;
for (int i = 0; i < prob.size(); i++) //GIVES ERROR
{
ent += (prob.at(i).freq) * log2( 1/(prob.at(i).freq) );
}
}
@MohitJain肯定的,但prob.at()和prob.size()給出了錯誤,因爲概率的聲明一個指向矢量的指針而不是矢量本身 – Maram
爲什麼你在本地聲明'prob'。這已經是一個功能的論點。理想情況下,在調用main函數時,應該使用'float compute_entropy(const vector&prob)' –
@MohitJain ..我怎樣才能傳遞參數? compute_entropy(&Symbol_table)?? – Maram