util.h的swap_range不会检查数组越界问题吗
Author: RIPTIDE-zCreated Apr 16, 2025Updated Apr 30, 2025
template <class ForwardIter1, class ForwardIter2>
ForwardIter2 swap_range(ForwardIter1 first1, ForwardIter1 last1,
ForwardIter2 first2) {
for (; first1 != last1; ++first1, (void)++first2)
mystl::swap(*first1, *first2);
return first2;
}这里在交换迭代器所指内容时似乎没有检查first2所指内容越界的情况,这里不会导致数组越界问题吗
比如
int a[5] = {1, 2, 3, 4, 5};
int b[2] = {6, 7};
mystl::swap_range(a, a + 3, b);在我电脑上运行完会将a变为{3 7 6 4 5}
虽然可以提示使用者注意范围问题,但是能提前检查应当会更好吧
我是个c++新手,如有理解错误请多包涵!
Source: Alinshans/MyTinySTL