uninitialized_copy:从前往后复制
copy_backward:从后往前复制
std::vector输出结果:from_vector{1,2,3,4,5,6}; std::vector to_vector(20); std::uninitialized_copy(from_vector.begin(), from_vector.end(), to_vector.begin()); //当然 to_vector.begin() 这块代表的是要从最开始那个位置开始, 也可以是 to_vector.begin() +1 ,to_vector.begin()+3
1 2 3 4 5 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0copy_backward: 案例
std::vector输出结果from_vector{1,2,3,4,5,6}; std::vector to_vector(20); std::copy_backward(from_vector.begin(), from_vector.end(), to_vector.end()); // to_vector.end() 这块也可以是从倒数第二个开始 比如:to_vector.end() -2 // 注意:from_vector.size() < to_vector.szie()
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 2 3 4 5 6应用场景:
1. copy_backward 比如在 vector位置 index处 插入一个元素x的时候,会做finish++ *** 作会将 index 和end() - 1 处的元素,从end() 处 从后往前复制, 然后再做 *index = x; std::copy_backward(index, finish -1, finish); *index = x;
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)