![]() |
#2
qq10235692232011-04-18 06:54
|
bool compare_huff(const HUFF & m1, const HUFF & m2)
{
return m1.prob > m2.prob;
}
int main(int argc, char* argv[])
{ vector<HUFF> vhuff;
char code[100]=m_shuru;
for(int i=0;i<strlen(code);i++)
{
//用来标识当前code中的符是不是已经存在于vhuff中
bool newchar = true;
for(int j=0;j<vhuff.size();j++)
{
if(vhuff[j].c == code[i])
{
vhuff[j].prob += 1.0;
newchar = false;
break;
}
}
if(newchar)//如果是新字符,即不在vhuff中
{
HUFF huff;
huff.c = code[i];
huff.prob = 1.0;
vhuff.push_back(huff);
}
}
这个程序段有两个错误:D:\程序设计\HUFFMAN编码\HUFFMAN编码Dlg.cpp(195) : error C2601: 'compare_huff' : local function definitions are illegal
D:\程序设计\HUFFMAN编码\HUFFMAN编码Dlg.cpp(202) : error C2601: 'main' : local function definitions are illegal
哪位大虾能帮我看看应该怎么改啊?是在mfc控件中编写的。