在我的主要,我称为函数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