std::copy vector
时间: 2023-09-02 18:06:48 浏览: 193
std::copy是一个在C++标准库中定义的函数模板,用于将一个范围内的元素复制到另一个范围中。它接受三个参数:输入范围的起始位置和结束位置,以及输出范围的起始位置。std::copy函数会将输入范围内的元素复制到输出范围中,并返回输出范围的结束位置的迭代器。
如果你想要将一个vector中的元素进行反转复制到另一个vector中,你可以使用std::rbegin和std::rend函数来指定输入范围的起始和结束位置,然后将输出范围的起始位置指定为目标vector的begin()迭代器。以下是一个示例代码:
```cpp
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<int> source {1, 2, 3, 4, 5};
std::vector<int> destination(source.size());
std::copy(std::rbegin(source), std::rend(source), destination.begin());
std::cout << "Reversed elements are: ";
for (auto i : destination) {
std::cout << i << " ";
}
std::cout << std::endl;
return 0;
}
```
在这个例子中,我们创建了一个名为source的vector,其中包含了1到5的连续整数。然后,我们创建了一个名为destination的vector,用于存储反转后的元素。我们使用std::copy函数将source中的元素反转复制到destination中,并使用for循环打印出destination中的元素。
请注意,std::rbegin和std::rend函数用于指定输入范围的反向迭代器,这样可以实现将元素反转复制的效果。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* [C++11标准模板(STL)- 算法(std::reverse_copy)](https://blog.csdn.net/qq_40788199/article/details/127580915)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"]
- *3* [C++11 std::copy、std::copy_if 用法小结](https://blog.csdn.net/hellokandy/article/details/125999765)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
阅读全文