COMP 2012H 开发日记

//我真的就是当一个笔记写的...表示自己很弱 orz、

这个assignment是自己implement一个非常非常简单的linked list,于是就开始做咯。

以前的时候没有仔细看过struct 和 union 所以先做了一个test。

linked list 通过一个个的pointer连接起来。

#include <iostream>
struct Cell{
	int int_m;
	double double_m;
	char* symbol_m;
};

int main(){
	Cell *c = new Cell;
	c->double_m = 2.718;
	std::cout << c->double_m;
	//std::cout << c->int_m;
	//std::cout << c->symbol_m;
	return 0;
}

上面的是我为了确定调用效果所做的一个测试。然后发现comment做的两行如果写出来的话是会导致没有任何输出的,着可能和编译器有关,可能是default会设置有些时候出错就终止了。用->调用的原因是之前看到过的用 * 号解引用然后用 . 调用property。

之后在struct里面插入了union这个元素,原因是每次的Cell只需要一种type,所以多余的type其实是对内存的浪费。

#include <iostream>
struct Cell{
	enum TypeTag {type_int, type_double, type_sympol};
	TypeTag tag_m;
	union {
		int int_m;
		double double_m;
		char* symbol_m;
	};
};
int main(){
	Cell *c = new Cell;
	c->double_m = 2.718;
	c->tag_m = Cell::type_int; 
	std::cout << c->double_m << std::endl;
	std::cout << c->tag_m;
	//std::cout << c->int_m;
	//std::cout << c->symbol_m;
	return 0;
}
上面的内容是加入了一个enum的域,基本第一部分的学习就完成了(其实还没到assignment,就是之前都不会于是先自学一下),注意上面的Cell::  这个符号,因为beyond main了。

其实得去问一下dekai,为什么在他自己的function里面是普通的int,但是在课程要求里面就是const int了。


Node.hpp这个文件就是linkedlist的每一个格子。其中include了"Cell.hpp"。

Cell.hpp这个文件是格子中的element,定义方式也跟上面的code差不多。

在linkedlist_internal.hpp中的文件还是非常简单的(在用其他编译器找到规律之后),于是就是设置几个node的值然后返回一个pointer。

<hr>

update


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值