阅读effective stl 有感(一)

当读到这本书的时候这有种相见恨晚的感觉啊! 边读以前写过的一行行stl代码就在自己的脑海中浮现。

下面我一条条总结我读stl的感想:

第一条:善用typedef

之前的访问者模式例子其实可以使用typedef 来写出节省修改类型时间的代码


前面的范围,由于我使用的是osg::bouindgbox 使得我的代码依赖于osg,但是很多人不使用osg。后面我就利用typedef重写了一遍:


//typedef osg::BoundingBox CBOX;

把里面所有的osg::boudingbox 都替换成CBOX, 这样用户就可以随意替换

class BoudingBox
{
public:
 void set(double xmin, double ymin, double zmin, double xmax, double ymax, double zmax);

 double xMin();

 double yMin();

 double zMin();

 double xMax();

 double yMax();

 double zMax();

private:
 double xmin;
 double xmax;
 double ymin;
 double ymax;
 double zmin;
 double zmax;
};

typedef BoudingBox CBOX;

同样的其实对于stl的容器也可以使用这种方法:

在后面的八叉树分割三维模型我运用了几种容器,也是可以用typedef来进行优化:

typedef std::hash_map<int, int> IndexTreeContainer;
 typedef IndexTreeContainer::iterator IndexTreeContainerIter;
 typedef std::list<int> IndexArrayContainer;
 typedef IndexArrayContainer::iterator IndexArrayContainerIter;

尤其是冗长的iterater 每次写都是一大段文字的赶脚



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值