C++
C++ Lambda表达式
Lambda函数也叫匿名函数,是自定义函数的一种,专指用关键字” lambda”定义的无名短函数,所以也有Lambda表达式这种说法。这种函数得名于省略了用def声明函数的标准步骤,是C++ 11中新增的特性。
一 .函数语法我们平时调用函数的时候,都是需要被调用函数的函数名,但是匿名函数就不需要函数名,而且直接写在需要调用的地方,对于以前没用过的小伙伴来说,第一眼看见了这语法可能很迷惑。
C++11的基本语法格式:1[capture](parameters) -> return_type { /* ... */ }
(1) [capture] :[]内为外部变量的传递方式,值、引用等,如下
123456[] //表示的是在lambda定义之前的域,对外部参数的调用;[=] //表示外部参数直接传值[&] //表示外部参数传引用,可修改值。当默认捕获符是 & 时,后继的简单捕获符必须不以 & 开始。而当默认捕获符是 = 时,后继的简单捕获符必须以 & 开始。[x, &y] // ...
VScode
VScode中文乱码问题的解决
原文地址
一开始为了解决这个问题查了很多文章,有方法:0、先在命令行执行 chcp 65001(换成utf-8编码) 再运行程序的(但不能一劳永逸);1、修改 VsCode 的 settings.json 的;2、还有修改系统注册表的;3、还有修改系统全局字符编码为 utf-8 的。比如下面的链接等等:
我试了试确实如文内所说的,都副作用很大,尤其是第二个链接里面的,系统目录、包括压缩文件和解压的时候,中文会乱码,得不偿失。
我转念一闪,在程序开头加一个 system() 执行 chcp 65001(换成utf-8编码) 不就每次执行程序都能在命令行正确打印中文了嘛-.-
本来程序的打印效果:
然后在自己的程序最前面加上这段话(紧跟着 main() 的后面第一句话就执行下面这句):
1system("chcp 65001"); /* cmd chcp 命令切换字符编码为 utf-8 以显示中文 */
加上之后,程序的打印效果:
C++
C++函数指针
最近遇到了函数指针的内容,有部分遗忘,经过复习巩固后,写下这篇博客,方便以后查看
函数指针基础:
1.获取函数的地址
2.声明一个函数指针
3.使用函数指针来调用函数
获取函数指针:
函数的地址就是函数名,要将函数作为参数进行传递,必须传递函数名。
声明函数指针
声明指针时,必须指定指针指向的数据类型,同样,声明指向函数的指针时,必须指定指针指向的函数类型,这意味着声明应当指定函数的返回类型以及函数的参数列表。
例如:
123456double cal(int); // prototypedouble (*pf)(int); // 指针pf指向的函数, 输入参数为int,返回值为double pf = cal; // 指针赋值void (Teacher:: *teacherSignal)(QString) = &Teacher::hungry; //定义函数指 teacherSignal指向函数hungry,并接受一个QString类型的参数connect(zt, teacherSignal, st, studentSlot);
如果将指针作为函数的参数传递 ...
Qt
Qt学习笔记(下)
1. 自定义控件封装==添加新文件 - Qt – 设计师界面类 (.h .cpp .ui)==
==ui中 设计 QSpinBox和QSlider 两个控件==
==Widget中使用自定义控件,拖拽一个Widget,点击提升为,点击添加,点击提升==
==实现功能,改变数字,滑动条跟着移动 ,信号槽监听。==
==提供 getNum 和 setNum对外接口==
==测试接口==
2. Qt中的事件==鼠标事件==
==鼠标进入事件 enterEvent==
==鼠标离开事件 leaveEvent==
==鼠标按下 mousePressEvent ( QMouseEvent ev)==
...
Qt
Qt学习笔记(中)
QT学习21.QMainWindow1.1 菜单栏 最多有一个==QMenuBar * bar = MenuBar();==
==setMenuBar( bar )==
==QMenu * fileMenu = bar -> addMenu(“文件”) 创建菜单==
==QAction * newAction = fileMenu ->addAction(“新建”); 创建菜单项==
==添加分割线 fileMenu->addSeparator();==
1.2 工具栏 可以有多个==QToolBar * toolbar = new QToolBar(this);==
==addToolBar( 默认停靠区域, toolbar ); Qt::LeftToo ...
Qt
Qt学习笔记(上)
1. Qt简介1.1 跨平台图形界面引擎1.2 历史 ==1991 奇趣科技==
1.3 优点==跨平台==
==接口简单,容易上手==
==一定程度上简化了内存回收==
1.4 版本==商业版==
==开源版==
1.5 成功案例==Linux桌面环境 KDE==
==谷歌地图==
==VLC多媒体播放器==
2. 创建第一个Qt程序2.1创建过程==点击创建项目后,选择项目路径以及给项目起名称==
==名称 - 不能有中文不能有空格==
==路径 - 不能有中文路径==
= ...
Linux
解决win10下SecureCRT SSH连接慢的问题
最近用SecureCRT连接远程服务器的时候,发现真的巨慢无比,真的无法忍受啊,于是在网上查阅了大约资料后,终于完美解决了问题
首先点击Options按钮,选择Session Options,如下图所示:
如上图所示,选择SSH2,找到Authenticiation中的GSSAPI,选中它,点击Properties弹出如下界面:
找到Method中的MS kerberos,然后选中它,点击OK,退出。
重新连接服务器,可以看到迅速连接上,问题完美解决。
数据结构与算法
常用算法总结
1.背包问题1.1递归1.1.1普通递归方法1234567891011121314151617181920212223242526272829303132333435/*w[] 物品的重量c[] 物品的价值index 物品的数量(下标)capacity 背包的容量*/const int maxn = 1000;int w[maxn], c[maxn], dp[maxn];int solve(int w[], int c[], int index, int capacity) { //基准条件:如果索引无效或者容量不足,直接返回当前价值0 if (index < 0 || capacity <= 0) return 0; //不放第index个物品所得价值 int res = solve(w, c, index - 1, capacity); //放第index个物品所得价值(前提是:第index个物品可以放得下) if (w[index] <= capacity) { res = max(res, c ...
Robocup3d
Robocup3d比赛环境的搭建及常用函数简介
1.比赛环境的搭建1.1 查看本机wsl子系统的版本号==wsl -l -v==
1.2 导入命令首先进入想要导入的目录,如图我在E盘中创建了wslstorage目录,将压缩包移到此目录下,打开cmd输入以下代码
==wsl –import ubuntu ./wsl ./Ubuntu.tar==
补充:
注销wsl子系统:==wsl –unregister Ubuntu==
成功导入以后,我们就基本完成了比赛环境的搭建,这之后我们还需要一个roboviz,可以让我们用肉眼观察到仿真足球赛中发生的状况,详细的下载地址可以看学长的博客,上面写的很详细https://blog.flyme.tech/2020/11/29/robocup3d_wsl/
一切完成后,大功告成
下面我给大家演示以下如何进入我们的比赛环境,在cmd中输入==wsl==命令进入wsl子系统,进入后,输入==rc ...
Linux
Linux常用命令总结
Linux的命令有几百个,但是常用的并不多,这些命令我们并不需要全部掌握。如果在学习和工作中遇到了陌生的Linux命令,多查手册,多多使用,久而久之就能熟能生巧
在这给大家推荐一个Linux命令在线中文手册,方便大家在遇到没见过的命令时查看
点我获取地址
本文介绍了Linux最基础的25个命令。
1、重启和关机重启和关机需要系统管理员用户权限。
1)重启
==init 6 或 reboot==
2)关机
==init 0 或 halt==
如果没有执行关机命令,强制断电或关闭本地虚拟机的窗口,会导致Linux操作系统文件的损坏,严重的可能导致系统无法正常启动。
2、清屏==clear==
清除当前屏幕上显示的内容。
==Ctrl+l==
换页,不清屏
3、查看服务器的ip地址==ip addr==
上图中,框中显示的就是IP地址。
4、时间操作普通用户可以查看时间,但设置时区和时间要系统 ...