首页 > 其他分享 >点击窗口

点击窗口

时间:2023-12-27 11:16:08浏览次数:27  
标签:y2 窗口 int wins 点击 y1 x1

算法思想:将窗口信息按顺序存入vector(从底层到顶层),每次点击屏幕,从顶层到底层搜索点击到了哪个窗口。将该窗口从vector中删除再重新加入,相当于该窗口变成最顶层,其余窗口顺序没有改变。

主要/核心函数分析:void click(int x, int y, vector<window>& wins) 每次点击屏幕,从顶层到底层搜索点击到了哪个窗口。将该窗口从vector中删除再重新加入,相当于该窗口变成最顶层,其余窗口顺序没有改变。

测试数据:

3 4
0 0 4 4
1 1 5 5
2 2 6 6
1 1
0 0
4 4
0 5

运行结果:

2
1
1
IGNORED

 1 #include<iostream>
 2 #include<vector>
 3 using namespace std;
 4 
 5 struct window 
 6 {
 7     int x1, x2, y1, y2;//坐标
 8     int num;//序列号
 9     window(int x1, int y1, int x2, int y2, int num) :x1(x1), y1(y1), x2(x2), y2(y2), num(num) {};//构造函数
10 };
11 
12 void click(int x, int y, vector<window>& wins) 
13 {
14     for (int i = wins.size() - 1; i >= 0; i--) //从最顶层开始搜索
15     {
16         if (x >= wins[i].x1 && y >= wins[i].y1 && x <= wins[i].x2 && y <= wins[i].y2) 
17         {
18             cout << wins[i].num << endl;
19             wins.push_back(wins[i]);//点击的窗口到最顶层
20             auto it = wins.begin() + i;
21             wins.erase(it);//清除原来的位置信息
22             return;
23         }
24     }
25     cout << "IGNORED" << endl;
26     return;
27 }
28 
29 int main() 
30 {
31     int N;
32     int M;
33     cin >> N >> M;
34 
35     vector<window>wins;//记录窗口信息
36 
37     for (int i = 1; i <= N; i++) 
38     {
39         int x1, x2, y1, y2;
40         cin >> x1 >> y1 >> x2 >> y2;
41         window win(x1, y1, x2, y2, i);
42         wins.push_back(win);//有底层到最顶层
43     }
44 
45     for (int j = 0; j < M; j++) 
46     {
47         int x, y;
48         cin >> x >> y;
49         click(x, y, wins);
50     }
51 }

 

标签:y2,窗口,int,wins,点击,y1,x1
From: https://www.cnblogs.com/saucerdish/p/17930114.html

相关文章

  • 金蝶云表单【表单插件】---物料新增按钮点击自动获取老系统中对应的物料信息20231226
    金蝶云需求:1、物料新增时,通过快捷方式自动获取老系统K3Wise中对应物料的相关信息;2、具体相关对应物料字段项信息,由存储过程:execpro_lyh_get_oldsystemwlxx'002'来查询结果;usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSyste......
  • 前端实现文件上传(点击+拖拽)
    一、简介之前在Vue项目中使用过element的上传组件,实现了点击上传+拖拽上传的两种上传功能。然后我就在想是否可以通过原生的html+js来实现文件的点击上传和拖拽上传,说干就干。首先是点击获取上传文件自然没的说,只需要借助input标签即可,但原生的点击上传按钮,实在是过于简陋,所以我的......
  • [Qt5] VS环境下实现Qt5两个窗口相互切换
    核心思想:通过定义指针显示窗口在VS中新建Qt项目2.通过添加类的方式,再添加一个ui.界面(好处是可以自动生成对应的.cpp和.h文件)方式:右键FormFiles——》添加——》类,选择Qt5GuiClass,添加。3.之后的界面4.在QtFather.ui和QtSon.ui界面分别添加按钮,并且添加槽、声明。.5.在Qt......
  • Qt/C++音视频开发61-多屏渲染/一个解码渲染到多个窗口/画面实时同步
    一、前言多屏渲染就是一个解码线程对应多个渲染界面,通过addrender这种方式添加多个绘制窗体,我们经常可以在展会或者卖电视机的地方可以看到很多电视播放的同一个画面,原理应该类似,一个地方负责打开解码播放,将画面同步传输到多个显示的地方,完全保证了画面的一致性。这样相当于复用......
  • 代码随想录算法训练营第二天 | 239. 滑动窗口最大值,347.前 K 个高频元素
    一、239.滑动窗口最大值题目链接:LeetCode239.滑动窗口最大值学习前:思路:无学习后:自定义双端队列,实现push、pop、peek方法,使得队列单调非增。peek方法不变;当入队时,若当前元素比队尾元素大,则pop队尾,直到队列为空或当前元素不大于队尾元素;当出队时,若队列非空且队首元素和窗......
  • EasyCVR点击通道后页面分页不显示是什么原因?如何解决?
    有用户反馈,EasyCVR在点击当前通道列表分页后,再点击其他设备时,页面不加载任何通道,如下对比:经过技术人员排查后发现,原因是重新点击设备时,带了之前的分页数据,才导致页面没有数据;查看代码发现,设备编码变更时,没有重置分页参数;于是新增重置分页参数代码,即可解决该问题。......
  • 智能监控平台/视频共享融合系统EasyCVR点击通道后页面分页不显示是什么原因?如何解决?
    TSINGSEE青犀视频监控汇聚平台EasyCVR可拓展性强、视频能力灵活、部署轻快,可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等,以及支持厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安防视频监控的能力,也具备接入AI智能分析的能力,包括对人、车、......
  • 【flink番外篇】5、flink的window(介绍、分类、函数及Tumbling、Sliding、session窗口
    Flink系列文章一、Flink专栏Flink专栏系统介绍某一知识点,并辅以具体的示例进行说明。1、Flink部署系列本部分介绍Flink的部署、配置相关基础内容。2、Flink基础系列本部分介绍Flink的基础部分,比如术语、架构、编程模型、编程指南、基本的datastreamapi用法、四大基......
  • win10 dos命令窗口输出中文乱码(将黑窗口改成UTF-8编码)
    1.情景展示在开发过程中,我们通常使用UTF-8编码。然鹅,操作系统默认字符集是GBK,这导致在黑窗口下出现的中文,以乱码的形式展现。如何解决?2.具体分析如何查看命令窗口的字符集?方式一win+r-->输入:cmd,打开黑窗口。运行:chcp,按回车键,可以得到:936,936对应的就是简体中文,也是windo......
  • javascript中的点击事件
     <!DOCTYPEhtml><html>    <head>        <metacharset="utf-8">        <title></title>    </head>    <body>        <tableborder>            <tr>                <th><i......