C++系列:C++11新特性(十)
更多参考其他文档菜鸟文档、W3C、微软C++文档
C++11特性
统一的初始化方法
成员变量默认初始值
auto关键字
decltype关键字
智能指针shared_ptr
对于指向同一地址的两个shared_ptr,不能识别到两个指针指向同一个地址,消亡时会释放两次内存空间
空指针nllptr
基于范围的for循环
右值引用和move语义
使用moveswap,确保a和b可以被修改
无序容器(哈希表)
正则表达式
lambda
类型转换
异常处理
问题
//内联函数不可以进行异常接口声明? //析构函数是否释放内存?什么是善后工作?
C++系列:算法(九)
更多参考其他文档菜鸟文档、W3C、微软C++文档
算法
STL中的算法
op是由自己定义的比较大小的方法
不变序列算法
变值算法
删除算法
remove 也可以对数组操作,所以不可以直接删除而是改变位置,删除并没有真正的删除个数
变序算法
排序算法
有序区间算法
相等、大于、小于都可以自己定义
这是在有序区间的算法
类模板
TSP问题
参考文献:
贪心算法:旅行商问题(TSP)
旅行商(TSP)问题专题——多种方法对比
算法设计与分析-TSP六种方法-贪心算法
详细设计:
/*题目描述:TSP(Traveling Salesman Problem )是指:有一个推销员,要到n个城市推销商品,他要找出一个包含所有n个城市的具有最短路程的环路,是图问题中最广为人知的问题。TSP的历史很久,最早的描述是1759年欧拉研究的骑士周游问题,即对于国际象棋棋盘中的64个方格,走访64个方格一次且仅一次,并且最终返回到起始点。类似的问题有:中国邮递员问题(Chinese Postman Problem CPP)一个邮递员从邮局出发,到所辖街道投递邮件,最后返回邮局,如果他必须走遍所辖的每条街道至少一次,那么他应如何选择投递路线,使所走的路程最短?配送路线问题(Route of Distribution)TSP问题在物流中的描述是对应一个物流配送公司,欲将n个客户的订货沿最短路线全部送到,如何确定最短路线。要求及说明:(1) 上网查找TSP问题的应用实例;(2) 分析求TSP问题的全局最优解的时间复杂度;(3) 将城市网存入文件 ...
Qt入门
QT_for_linux
第一个QT应用程序
重点掌握开发流程
(1)创建工程目录
mkdir Hello #每个QT程序都要放在一个独立的工程目录下
(2)进入工程目录编写源代码
vi main.cpp #语法和C++保持基本一致,但使用QT的类库不再是标准C++的库
#include<QApplication>#include<QLabel>int main(int argc,char** argv){ //创建QT应用程序对象 QApplication app(argc,argv); //创建标签控件 QLabel label("Hello Qt!"); //显示标签控件 label.show(); //让应用程序进入事件 return app.exec(); }
(3)构建工程
qmake -prohect #生成工程文件Hello.pro,并在文件中添加构建选项,QT += widgets
(4)创建Makefile
qmake #可以根据上一步的工程文件自动生成M ...
ROS之命令与编程实践
参考资料
古月居ROS21讲
ROSwiki
ROS命令行概述
roscore启动命令
rosrun
rosrun [package_name] [node_name] #允许你使用包名直接运行一个包内的节点(而不需要知道这个包的路径)。
rosls
rosls是rosbash命令集中的一部分,它允许你直接按软件包的名称而不是绝对路径执行ls命令(罗列目录).
rosls beginner_tutorials/CMakeLists.txt include package.xml src
roscd log
使用roscd log可以切换到ROS保存日记文件的目录下。需要注意的是,如果你没有执行过任何ROS程序,系统会报错说该目录不存在。
rosed
rosed 是 rosbash 的一部分。利用它可以直接通过package名来获取到待编辑的文件而无需指定该文件的存储路径了。
rosed [package_name] [filename]
这个实例展示了如何编辑roscpp package里的Logger.msg文件。
rospack命令
rospa ...
ROS之消息通信
侵删
前置知识
计算图 什么是计算图?
进程 进程和线程、操作系统之进程和线程(二者的区别,进程的状态切换、创建、终止、上下文切换)、进程和线程
松耦合 耦合,松耦合,紧耦合、图解7种耦合关系
同步异步 彻底理解同步 异步 阻塞 非阻塞
TCP协议 TCP协议详解
RPC与XML-RPC RPC(Remote Procedure Call Protocol)——远程过程调用协议 HTTP服务和RPC服务,如何选择?、IP、TCP、UDP、HTTP、WebSocket、SOCKET之间的关系和区别、What is XML-RPC、新手的 XML-RPC](http://scripting.com/davenet/1998/07/14/xmlRpcForNewbies.html)
中间件 什么是中间件?
分布式系统 什么是分布式系统?
机器人开发的麻烦
机器人开发中一个很常见的故事是这样的:有一天,一名学生/工程师开始了一个新的很酷的机器人项目。她开始计划并从事该项目。很快,她就发现事情没那么简单。机器人学很难学,为机器人开发一个好的软件需要时间。因此,她开始 ...
基于VMware的Ubuntu18.04系统安装ROS
配置准备:Ubuntu18.04
如遇到其他问题,请看文章最后的一些方法,或者自行搜索。
安装步骤
首先看ROS的WIK,有中文界面,选择合适的版本系统的ROS安装的方法。
这里主要针对Ubuntu18.04 虚拟机上安装ROS
提示:请确保是一个干净的系统,有助于你减少花费的时间
安装时,要先换软件源清华、阿里的都可以试一下,我这里放了一些也可以自己搜索
#阿里源deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiversedeb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiversedeb-src http://mirrors.aliyun.com/ubuntu/ bionic-security mai ...
C++以文本形式按行读取文件数据
更多参考其他文档菜鸟文档、W3C、微软C++文档
参考资料:
C++中string转int
C++ getline函数用法详解
C++文件读写详解(ofstream,ifstream,fstream)
C++系列:标准模板库STL(1)(七)
//目的:以文本形式将数据按行读入到定义好的数据对象中 #include<iostream>#include<string>#include <sstream> //要使用stringstream流应包含此头文件#include<fstream>using namespace std;//以图书的数据为例 typedef struct book{ string ISBN; string name; int yuan;}book;int main(){ stringstream stream; //定义stringstream这个对象 string x; book newbook[5]; ifstream srcFile("book.txt", ios: ...
C++ 文件访问与输入输出流详解
参考侵删:
c语言基础——对文件的输入和输出(详细版)
C++ 工程实践(7):iostream 的用途与局限
C语言中文网
小数在内存中是如何存储的,揭秘诺贝尔奖级别的设计(长篇神文)
前置
什么是文件
文件是程序设计中一个重要的概念,所谓“文件”一般指存储在外部介质上数据的集合。文件有不同的类型,在c程序设计中,主要用到两种文件程序文件,数据文件。下面介绍一些有关文件的基本概念:
程序文件
包括源程序文件(后缀为.c)、目标文件(后缀为.obj)、可执行文件(后缀为exe)等。这种文件的内容是程序代码。
数据文件
数据文件的内容不是程序,而是供程序运行时读写的数据。其根据数据的组织形式可分为文本文件和二进制文件。
文件缓冲区
由于CPU 与 I/O 设备间速度不匹配。为了缓和 CPU 与 I/O 设备之间速度不匹配矛盾。文件缓冲区是用以暂时存放读写期间的文件数据而在内存区预留的一定空间。使用文件缓冲区可减少读取硬盘的次数。
ANSI C标准采用缓冲文件系统处理数据文件。系统自动地在内存区为程序中每一个正在使用的文件开辟一个文件缓冲区,在向文件输出数据时,它就作 ...
win10提示无Internet、无法开热点(能上网)
折腾了很久,但是最后找到了一个可用的办法,仅作记录
出处:https://www.bilibili.com/read/cv5292887/
问题再现
win10右下角的网络连接打开显示:
但是实际上是可以正常上网的,打开适配器的状态:
也是提示无访问权限,还没有找到解决的办法。
解决
试过网上的几乎所有方法,例如禁用复用网卡、网络重置、禁用复用服务,也用了用修改注册表下\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NlaSvc\Parameters\Internet下的EnableActiveProbing项的办法,均不见效,这种情况下可以试试此方法。如果大家也出现以上状况,尤其是win10 18362(即1903)版以后的新版本,则取消上网验证通常不能解决问题。
原因分析:经注册表选项比对,发现问题出在连网返回值功能有了变化。原理是每当连网后,系统会自动向微软的dns.msftncsi.com发出请求,然后返回一个NCSI.txt的值,这一值如果正确时,则确认为已连网。而Win10最近的版本中,这个返回服务器和 ...