📅  最后修改于: 2023-12-03 15:13:55.283000             🧑  作者: Mango
C++ STL中的move()
函数。move()
函数用于将某个区间中的元素移动到另一个区间,通常用于将一个容器中的元素移动到另一个容器中。
move()
函数的语法如下:
template<class InputIt, class OutputIt>
OutputIt move(InputIt first, InputIt last, OutputIt d_first);
其中,first
和last
标识了要移动元素的区间,d_first
标识了元素要移动到的位置。
move()
函数将指定区间内的元素逐个迭代,将每个元素拷贝到d_first
位置,并将原始元素设为无效状态。
move()
函数拥有以下特性:
move()
函数不会修改原始序列的元素值,只是将元素值从一个位置复制到另一个位置。move()
函数在内部调用了move_iterator
实现迭代器移动,因此无法应用于未定义move()
或拷贝构造函数的自定义类型。下面是一个使用move()
函数将vector
容器中的元素移动到另一个vector
容器中的示例:
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<int> from_vector = {1, 2, 3, 4, 5};
std::vector<int> to_vector(5);
std::move(from_vector.begin(), from_vector.end(), to_vector.begin());
std::cout << "to_vector contains: ";
for (auto i : to_vector) {
std::cout << i << " ";
}
std::cout << std::endl;
return 0;
}
输出结果为:
to_vector contains: 1 2 3 4 5
在上面的示例中,move()
函数将from_vector
中的元素逐个移动到to_vector
中,最终输出to_vector
中的元素。
move()
函数是C++ STL中极为有用的函数之一,常用于将容器中的元素移动到另一个容器中,避免了拷贝构造造成的内存浪费。使用move()
函数需要注意移动后的对象的可用性,可以大大提高代码的运行效率和内存使用效率。