C++ 算法 move()function 用于移动元素。它接受三个参数,然后将属于范围 [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
函数的复杂度从第一个元素到最后一个元素是线性的。
访问部分或全部容器对象。
如果任何容器元素抛出一个异常,该函数就会抛出异常。
好了, 以上是本文所有内容,希望对大家有所帮助,也希望大家对码农之家多多支持,你们的支持是我创作的动力!祝大家生活愉快!