平时很小用到std的算法.今天用了一下copy这个函数,结果开始就出错..
template<class InputIterator, class OutputIterator> OutputIterator copy( InputIterator _First, InputIterator _Last, OutputIterator _DestBeg );
原本以为在dest容器会执行.push_back操作.迅速把代码写好,结果一运行,立马当机..
原来,copy操作需要保证dest容器的空间大于src容器,否则就会出错.
照这样说来,应该copy操作只是执行iterator的拷贝操作,却不分辨容器的类型.这样如果dest容器太小时,在iterator++时,便会对一个空地址赋值,导致内容访问出错