- void test_copy()
- {
- int src[5] = {3, 6, 9, 12, 15};
- int dect[10] = {10, 20, 30, 40, 50, 60, 70, 80, 90, 100};
- std::vector<int> src_vect(src, src + 5);
- std::vector<int> dect_vect(dect, dect + 10);
- std::copy(src_vect.cbegin(), src_vect.cend(), dect_vect.end());
- std::copy(dect_vect.cbegin(), dect_vect.cend(), std::ostream_iterator<int>(std::cout, " "));
- // result: 10 20 3 6 9 12 15 80 90 100
- }
- // copy_backward与copy函数的不同之处在于:
- // copy_backward函数它是从最后一个元素向前复制。
- void test_copy_backward()
- {
- int src[5] = {3, 6, 9, 12, 15};
- int dect[10] = {10, 20, 30, 40, 50, 60, 70, 80, 90, 100};
- std::vector<int> src_vect(src, src + 5);
- std::vector<int> dect_vect(dect, dect + 10);
- std::copy_backward(src_vect.cbegin(), src_vect.cend(), dect_vect.begin() + 5);
- std::copy(dect_vect.cbegin(), dect_vect.cend(), std::ostream_iterator<int>(std::cout, " "));
- // result: 10 20 30 40 50 3 6 9 12 15
- }
- // copy_if相比与copy多了一个函数对象,控制更加灵活。
- void test_copy_if()
- {
- int ar[10] = {10, 20, 30, 40, 50, 60, 70, 80, 90, 100};
- std::vector<int> vect(ar, ar + 10);
- std::copy_if(vect.begin(),
- vect.end(),
- std::ostream_iterator<int>(std::cout, " "),
- std::bind2nd(std::greater_equal<int>(), 50));
- // result: 50 60 70 80 90 100
- }
copy, copy_if, copy_backward函数解析
最新推荐文章于 2023-10-05 08:47:00 发布