当读到这本书的时候这有种相见恨晚的感觉啊! 边读以前写过的一行行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 每次写都是一大段文字的赶脚