On 11月23日, 下午1时05分, jinhu wang <wangjinhu...@gmail.com> wrote:
但是 char* p = v.begin();
这种用法就不要使用了。这用法隐含了一个假设,v的迭代器就是指针。这假设有时侯是不成立的,比如有些安全版本的stl实现。v的迭代器真的是一个
类。
char* p = &v[0];用法有实际意义。
比如,很多时候,我们需要分配内存。
以前我会直接写成
char* p = new char[size];
一些代码,
delete [] p;
现在我会写成
std::vector<char> buf;
buf.resize(size);
char* p = &buf[0];
之后使用就不用delete了,这样可以防止函数长时忘记释放。并且也是异常安全的。
On 11月23日, 下午1时05分, jinhu wang <wangjinhu...@gmail.com> wrote:
我一般都这样用。不过这样其实不好,因为这样我假设了stl的vector实现。