C++程序设计实践

本次程序设计遇到的问题及解决方法:

C++中读写对象的方法

写:

 ofstream wr("Path", ios::out | ios::trunc);
 wr.write((char *) &obj, sizeof(obj));
 wr.close();

读:

ifstream rin("Path", ios::in | ios::binary);
rin.read((char*)&obj, sizeof(obj));
rin.close();

注意:以此方式读写对象的前提是对象中不能有string类型数据成员!
否则报错:

SIGSEGV (Segmentation fault)

查询资料整合:

1.模式标志
模式标志
(补充:ios::binary : 以二进制方式打开文件)

2.读写的关键语句

 istream& read(char *buffer,int len);
 ostream& write(const char * buffer,int len);

注:读写的参数是char型的数据对象指针单个数据对象的内存长度

C++中char型数组与string的转化

1.char数组转化为string:

char charArray[];
string str(charArray);

2.string转化为char数组:

char charArray[];
string str;
strcpy(charArray,str.c_str());

直观打印哈夫曼树的思路

整体思路:
1.使用前序遍历的方式,确定各个节点所在层数
2.使用中序遍历的方式,确定各个节点的相对位置(x轴上的)
3.按照各个节点所在层数进行排序,根据相应节点位置打印偏移量

哈夫曼编码的思路

整体思路:
若节点有左孩子,则左孩子的编码为该节点的编码值+“0”,对其左孩子进行编码;
右孩子操作同上。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值