Qt_C++交换两个数

简介: 在编程过程中,交换两个数是我用常用的 ,这里做下简单的搬运
bool Widget::swap(int a, int b)
{
    int temp =a;
    a= b;
    b = temp;
}

这种方式其实是没有改变的ab两个参数的值的,只有在函数里面,ab的值是改变的,但是在函数外面,ab的值还是没有改变的

bool Widget::swap_point(int *a, int *b)
{
    int temp = *a;
    *a = *b;
    *b = temp;
}

这样才是改变了ab的值

另外 ,交换两个数的值,大致应该有一下三种方式,注意,这里的形参都是指针(或引用)。

第一种,带有第三个变量的

bool Widget::swap1(int*a,int*b)//第一种,也是最常用的一种
{
  intt;
  t=*a;
 *a=*b;
  *b=t;
}

第二种,好像记得回存在数据溢出问题,没有验证过

bool Widget::swap2(int*a,int*b)//第二种,不需要额外的内存空间(不用临时变量)
{
   *a=*a+*b;
  *b=*a-*b;
  *a=*a-*b;
}

第三种,位运算

bool Widget::swap3(int*a,int*b)//第三种,不需要额外的内存空间,位运算实现
{
  *a^=*b;
  *b^=*a;
  *a^=*b;
}

欢迎补充。。。。

目录
相关文章
|
监控 定位技术 安全
Qt编写安防视频监控系统3-通道交换
一、前言 最开始写通道交换的功能的时候,走了很多弯路,比如最开始用最初级的办法,触发交换的时候,先关闭视频,然后设置新的url重新打开视频,这样处理非常低级而且耗内存还卡还很慢,毕竟重新打开视频都需要时间的,快则几百毫秒慢则几秒钟都很有可能,尤其是网络情况不好的情况下,更加糟糕,后面发现自己真傻,完全没有必要去关闭原有视频,毕竟交换仅仅是位置的交换,而不是重新设置视频,可以直接重新布局,将视频控件对应的布局位置调换下即可,这种方法就做到了瞬间交换,视频还是原来的视频,正常播放,根本就没有中断过。
1031 0
|
4月前
|
数据安全/隐私保护 C++ 计算机视觉
Qt(C++)开发一款图片防盗用水印制作小工具
文本水印是一种常用的防盗用手段,可以将文本信息嵌入到图片、视频等文件中,用于识别和证明文件的版权归属。在数字化和网络化的时代,大量的原创作品容易被不法分子盗用或侵犯版权,因此加入文本水印成为了保护原创作品和维护知识产权的必要手段。 通常情况下,文本水印可以包含版权声明、制作者姓名、日期、网址等信息,以帮助识别文件的来源和版权归属。同时,为了增强防盗用效果,文本水印通常会采用字体、颜色、角度等多种组合方式,使得水印难以被删除或篡改,有效地降低了盗用意愿和风险。 开发人员可以使用图像处理技术和编程语言实现文本水印的功能,例如使用Qt的QPainter类进行文本绘制操作,将文本信息嵌入到图片中,
181 1
Qt(C++)开发一款图片防盗用水印制作小工具
|
3月前
|
监控 C++ 容器
【qt】MDI多文档界面开发
【qt】MDI多文档界面开发
89 0
|
2月前
|
开发工具 C++
qt开发技巧与三个问题点
本文介绍了三个Qt开发中的常见问题及其解决方法,并提供了一些实用的开发技巧。
|
2月前
|
3月前
|
C++
C++ Qt开发:QUdpSocket网络通信组件
QUdpSocket是Qt网络编程中一个非常有用的组件,它提供了在UDP协议下进行数据发送和接收的能力。通过简单的方法和信号,可以轻松实现基于UDP的网络通信。不过,需要注意的是,UDP协议本身不保证数据的可靠传输,因此在使用QUdpSocket时,可能需要在应用层实现一些机制来保证数据的完整性和顺序,或者选择在适用的场景下使用UDP协议。
158 2
Qt开发网络嗅探器02
Qt开发网络嗅探器02
|
3月前
|
存储 运维 监控
Qt开发网络嗅探器01
Qt开发网络嗅探器01
|
3月前
|
网络协议 容器
Qt开发网络嗅探器03
Qt开发网络嗅探器03
|
3月前
【qt】多窗口开发
【qt】多窗口开发
60 0

推荐镜像

更多
下一篇
无影云桌面