C++ 算法 中的 move函数

首页 / C++入门教程 / C++ 算法 中的 move函数

C++算法move()函数用于移动元素。它接受三个参数,然后将属于[first,last)参数的元素移动到以'result'开头的参数。

move - 语法

template<class InputIterator, class OutputIterator> OutputIterator move(InputIterator first, InputIterator last, OutputIterator result);

move - 参数

first:它是参数的第一个元素的输入迭代器,其中元素本身包含在参数中。

last:它是参数最后一个元素的输入迭代器,其中元素本身不包含在参数中。

result:它是移动元素初始位置的输出迭代器。

move - 返回值

该函数将第一个元素的迭代器返回到已移动元素的序列。

move - 例子1

#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

move - 例子2

#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

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

AI技术内参 -〔洪亮劼〕

深入拆解Java虚拟机 -〔郑雨迪〕

算法面试通关40讲 -〔覃超〕

透视HTTP协议 -〔罗剑锋(Chrono)〕

Netty源码剖析与实战 -〔傅健〕

数据中台实战课 -〔郭忆〕

系统性能调优必知必会 -〔陶辉〕

Selenium自动化测试实战 -〔郭宏志〕

深度学习推荐系统实战 -〔王喆〕

好记忆不如烂笔头。留下您的足迹吧 :)