关于vector转换为数组的讨论
实际编程中经常出现这样的情况:
比如说要使用画曲线的windows函数
BOOL Polyline(
HDC hdc, // handle to device context
CONST POINT *lppt, // pointer to array containing endpoints
int cPoints // number of points in the array
);
显然这个函数要传一个数组进去,我们可以从文件中读取点集到vector<POINT>中,那么现在就需要把vector转换为数组,一种方法当然是把vector拷贝到数组中,这个方法显然占用双倍的内存,可以舍弃。还有一种方法,如下:(PointList是vector<POINT>类型的)
const POINT *lpData=static_cast<POINT *>(PointList.begin());
这种方法可行否,在vc下是运行是没有问题的,但是显然这样比较怪
那么这种方法可行否,理论上如何讲?因为显然是将一个迭代器转型了。如果不行,有没有更好的方法?我想stl的设计人一定考虑过这些问题,因为这些应用是很普遍的