C++ move使用

move作用主要可以将一个左值转换成右值引用,从而可以调用C++11右值引用的拷贝构造函数,在对象拷贝的时候,在运行时,它们不会产生一行代码原先的对象也会清空, 可以减少资源创建和释放。作为可以归纳为以下几点:

1、std::move函数可以以非常简单的方式将左值引用转换为右值引用。

2、通过std::move,可以避免不必要的拷贝操作。

3、std::move是为性能而生。

4、std::move是将对象的状态或者所有权从一个对象转移到另一个对象,只是转移,没有内存的搬迁或者内存拷贝。
两个地址是独立的,move操作实际上是系统将这一块地址属于哪一个地址的登记改一下,实际上这一块内存根本没有发生任何变化。
打个比方,就好比说一个房产,原来登记在张三名下,“张三”就是地址。张三也有管理权。move就相当于过户。过户给李四后,“李四”就是这个房子的“地址”,管理权自然也交接给了李四。
在这里插入图片描述

C++,MOUSEEVENTF_MOVE是一个用于模拟鼠标移动的标志位常量,你可以使用它来生成鼠标移动事件。下面是一个简单的示例代码,展示了如何使用MOUSEEVENTF_MOVE来模拟鼠标移动: ```cpp #include <iostream> #include <Windows.h> int main() { // 设置鼠标的初始位置 int startX = 100; int startY = 100; // 创建鼠标移动事件 MOUSEINPUT mouseInput; mouseInput.dx = startX * (65536 / GetSystemMetrics(SM_CXSCREEN)); // 计算相对于屏幕的x坐标 mouseInput.dy = startY * (65536 / GetSystemMetrics(SM_CYSCREEN)); // 计算相对于屏幕的y坐标 mouseInput.mouseData = 0; mouseInput.dwFlags = MOUSEEVENTF_MOVE | MOUSEEVENTF_ABSOLUTE; mouseInput.time = 0; mouseInput.dwExtraInfo = 0; // 创建输入事件 INPUT input; input.type = INPUT_MOUSE; input.mi = mouseInput; // 发送鼠标移动事件 SendInput(1, &input, sizeof(INPUT)); return 0; } ``` 在这个示例,我们首先计算了鼠标移动的目标位置,然后使用MOUSEEVENTF_MOVE和MOUSEEVENTF_ABSOLUTE标志位来创建一个鼠标移动事件。最后,通过调用SendInput函数将该事件发送给系统。 请注意,这段代码仅演示了如何使用MOUSEEVENTF_MOVE,实际上,你可能需要结合其他的鼠标事件来实现更复杂的操作,例如按下鼠标按钮或释放按钮。此外,该代码在Windows操作系统上有效,如果你在其他平台上使用C++开发,可能需要使用不同的API或方法来模拟鼠标移动。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值