首页 > 代码库 > c++ vector copy函数
c++ vector copy函数
1 template<class InputIterator, class OutputIterator> 2 OutputIterator copy (InputIterator first, InputIterator last, OutputIterator result) 3 { 4 while (first!=last) { 5 *result = *first; 6 ++result; ++first; 7 } 8 return result;
copy函数作用相当于上面的代码,刚开始用的时候并不能实现,上代码
1 int main() 2 { 3 vector<int> v = {1,2,3}; 4 vector<int> cv ; 5 copy(v.begin(),v.end(),cv.begin()); 6 for(auto a: cv) 7 cout<<a; 8 return 0; 9 }
根据函数模版发现,*result = *first; ++result;
原因是cv现在为一个空的容器,所以无法赋值,运行自然出现数组越界的问题。
1 int main() 2 { 3 vector<int> v = {1,2,3}; 4 vector<int> cv(3) ; 5 copy(v.begin(),v.end(),cv.begin()); 6 for(auto a: cv) 7 cout<<a; 8 return 0; 9 }
定义的时候为cv分配空间即可
c++ vector copy函数
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。