C++算法move()函数用于移动元素。它接受三个参数,然后将属于[first,last)参数的元素移动到以'result'开头的参数。
template<class InputIterator, class OutputIterator> OutputIterator move(InputIterator first, InputIterator last, OutputIterator result);
first:它是参数的第一个元素的输入迭代器,其中元素本身包含在参数中。
last:它是参数最后一个元素的输入迭代器,其中元素本身不包含在参数中。
result:它是移动元素初始位置的输出迭代器。
该函数将第一个元素的迭代器返回到已移动元素的序列。
#include <iostream> #include <algorithm> #include <utility> #include <vector> #include <string> int main () { std::vector<std::string> a = {"suraj","aman","vanshika","chhavi"}; std::vector<std::string> b (4); std::cout << "Move function.\n"; std::move ( a.begin(), a.begin()+4, b.begin() ); std::cout << "a contains " << a.size() << " elements:"; std::cout << " (The state of which is valid.)"; std::cout << '\n'; std::cout << "b contains " << b.size() << " elements:"; for (std::string& x: b) std::cout << " [" << x << "]"; std::cout << '\n'; std::cout << "Moving the conatiner a...\n"; a = std::move (b); std::cout << "a contains " << a.size() << " elements:"; for (std::string& x: a) std::cout << " [" << x << "]"; std::cout << '\n'; std::cout << "b is in valid state"; std::cout << '\n'; return 0; }
输出:
Move function. a contains 4 elements: (The state of which is valid.) b contains 4 elements: [suraj] [aman] [vanshika] [chhavi] Moving the conatiner a... a contains 4 elements: [suraj] [aman] [vanshika] [chhavi] b is in valid state
#include<bits/stdc++.h> int main() { std ::vector <int> u1 {9, 14, 21, 18}; std ::vector <int> u2 {14, 14, 14, 14}; std ::cout << "u1 contains :"; for(int j = 0; j < u1.size(); j++) std ::cout << " " << u1[j]; std ::cout << "\n"; std ::cout << "u2 contains :"; for(unsigned int j = 0; j < u2.size(); j++) std ::cout << " " << u2[j]; std ::cout << "\n\n"; std ::move (u1.begin(), u1.begin() + 4, u2.begin() + 1); std ::cout << "u2 contains after move function:"; for(unsigned int j = 0; j < u2.size(); j++) std ::cout << " " << u2[j]; std ::cout << "\n"; return 0; }
输出:
u1 contains : 9 14 21 18 u2 contains : 14 14 14 14 u2 contains after move function: 14 9 14 21
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)