find函数
建议直接看最后的结论题目描述输入 n 个不超过 10^9 的单调不减的(就是后面的数字不小于前面的数字)非负整数,然后进行 m 次询问。对于每次询问,给出一个整数 q,要求输出这个数字在序列中第一次出现的编号,如果没有找到的话输出 -1 。
输入格式第一行 2 个整数 n 和 m,表示数字个数和询问次数。
第二行 n 个整数,表示这些待查询的数字。
第三行 m 个整数,表示询问这些数字的编号,从 1 开始编号。
输出格式输出一行,m 个整数,以空格隔开,表示答案。
样例 #1样例输入 #111 31 3 3 3 5 7 9 11 13 15 151 3 6
样例输出 #11 2 -1
关于find函数的返回值问题上面是今天算法实验的第一道题目,我开始时打算使用vector类型来存储数据
在用迭代器遍历完之后,我想到了find函数
find函数只需要输入首尾迭代器以及需要查找的元素即可
但是,当所查容器中含有多个需要查找的元素时,会怎么样呢?
#include<iostream>#include<vector>#include<algorithm> ...
关于windows的吐槽
起因最近突发奇想,想要在windows上跑一些视觉的东西,结果被狠狠地折磨了……
opencv首先是opencv的源码编译。
在大一的时候,因为一些原因自学了一下opencv3,并且当时使用的IDE是Visual Studio 2019。
VS虽然笨重,但是对于C++开发的一些相关依赖它确实很全面,只需要在安装时勾选一些组件即可。OpenCV的二进制文件也可以直接使用。
时隔大半年,自认为比较熟悉Linux环境配置的我想要在windows上也配置上opencv的环境。
因为想要挑战自己,所以就没有去用集成环境了。自己下载了CMake和mingw,打算将vscode打造成视觉处理的一个IDE。
但是!!从官网下载下来的库是有问题的。
问题在使用CMake编译源码的时候,有一些组件是需要从github上下载的。但是,有关下载这一部分的配置文件已经过期了,原来那个仓库的分支已经变了,导致组件无法直接下载。
需要自己到github上下载然后复制到指定目录。
后面我想了想直接修改了配置文件里的URL,文件是正常下载了但是CMake还是有报错,从日志上没有看出来问题所在。
再后面看了几篇博客,有一 ...
ros同工作空间下调用消息包
起因昨天也是被这个玩意儿折磨了一下午,主要是配置CMakeLists和package的问题
被调用包被调用包首先自己编译要没有问题(这是肯定的),其次需要改一下CMakeLists文件
在catkin_package这一个命令中需要注释掉
LIBRARIES ${PROJECT_NAME}
这一条命令会让你在编译消息包是创建一个空的库,导致在需要调用的那个包中找不到这个消息包
调用包调用包需要更改CMakeLists和package
CMakeListsfind_package中需要添加消息包,直接添加消息包的名字就行
find_package(catkin REQUIRED COMPONENTS cv_bridge image_transport roscpp rospy std_msgs geometry_msgs line_vision ##这个是消息包 )
麻了,现在写笔记的时候才发现只需要加一个find_package,当时卡住的时候加了一堆乱七八糟的东西···
package加入两条依赖命令
< ...
cout.precision
precision()这是今天看书时发现的一个cout的方法
返回值为当前浮点数的精确位数,可以添加整型参数,如:
cout.precision(3);
这个操作就是将当前的浮点数精确度设置为小数点后三位
视觉SLAM
SLAM学习日志
参考书籍为高翔《视觉SLAM十四讲》
旋转矩阵基础概念首先引入点、向量和坐标系,这些在初高中已经学过了。之后引入了内积和外积,内积的结果是一个数字,外积的结果是一个与做外积运算的两向量相互垂直的向量
内积的运算可以写成这样:
a·b = a(T)*b = |a|*|b|*cos<a,b>
外积的运算可以写成这样:
a×b = a^b
外积结果的大小为a*b*sin<a,b>
tips:外积的具体运算方法可以参考《微积分(下)》
外积运算可以表示旋转。对于一个向量来说,旋转后他的模的大小不变,改变的只有方向,而外积的大小则可以反映旋转的夹角的大小,所以通过一个旋转向量可以很轻松的算出旋转后的向量。
坐标系的欧式变换在实际应用中,机器人的坐标系是移动的,当不将机器人的坐标系作为惯性系时,我们需要用到坐标转换。
在坐标转换时,我们通常使用一个变换矩阵T
具体计算参考《线性代数》
变换矩阵为行列式为1的矩阵,所有行列式为1的矩阵都可以作为变换矩阵
qr分解在高翔的《视觉slam十四讲》中,关于旋转矩阵,书上举了一个利用Eigen库解矩阵方程的例子 ...
git笔记(1)
初始化仓库git init
在你想创建仓库的目录下使用该命令,出现下面情况则成功
Initialized empty Git repository in /Users/michael/learngit/.git/
添加文件到仓库git add 文件名
没有任何提示则成功
git commit -m "该次提交的说明"
该命令告诉git把文件提交到仓库,出现类似情况则成功
[master (root-commit) eaadf4e] wrote a readme file1 file changed, 2 insertions(+)create mode 100644 readme.txt
tips
当你使用git commit时它可能会告诉你
Author identity unknown*** Please tell me who you are.
这个时候你需要补充你的信息
git config --global user.email "你的邮箱"git config --global user.name "你的名字" ...