在ros使用for auto报错
在ros使用for auto报错
- auto类型说明符
- 范围for语句for auto
auto类型说明符
常常需要将表达式的值赋给变量,为了解决声明变量时表达式的值未知的问题,引入了auto类型说明符。它可以根据初始值自动分析表达式所属类型:
// 由val1和val2相加的结果推断出item的类型
auto item = val1 + val2;
//声明同一种类型
auto i = 0, *p = &i;//正确:p是整形指针
//不能声明不同类型
auto sz = 0, pi = 3.14 //错误
范围for语句for auto
c++11引入了一种更简单的for语句,可遍历容器或序列的所有元素:
for (declaration: expression)statement
其中expression必须是一个序列,其拥有能返回迭代器begin和end成员;
declaration定义一个变量,序列中的每个元素都必须能转换成该变量的类型,通常使用auto。如果需要对序列中的元素执行操作,循环变量须声明成引用类型;
每次迭代都会重新定义循环控制变量,并将其初始化为序列中的写一个值,之后执行statement。所有元素都处理完毕后循环中止。
vector<int> v = {0,1,2,3,4,5,6,7,8,9};
//范围变量须是引用类型,才能对元素执行写操作
for(auto &r : v) //对v中每一个元素r *= 2;//将v中每个元素翻倍
由于准备修改v中元素的值,因此将r声明成引用类型。此时在循环内给r赋值,即改变了r所绑定的元素的值。
范围for语句等价的传统for语句:
for (auto beg = v.begin(), end = v.end(); beg != end; ++beg) {auto &r = *beg;r *= 2;
}
注
1.由于范围for语句预存了容器end()的值,所以不能在范围for语句内添加(删除)序列中的元素,否则end函数的值可能会无效。
2.由于for auto是c++11新特性,所以在使用vscode时可能会报错,需要在配置文件或CMakeLists中添加c++11特性。
如在CMakeLists文件中添加语句set(CMAKE_CXX_STANDARD 11)或set(CMAKE_CXX_FLAGS “-std=c++11”)
在ros使用for auto报错相关推荐
- 关于在ROS kinetic下arbotix报错的问题
最近在学习ros过程中 出现了一个包错误 ERROR:cannot launch node of type [arbotix_python/arbotix_driver]:arbotix_pytho ...
- Ubuntu16.04安装ROS后运行gazebo报错 it says it‘s incompatible with that RT“‘ failed.
Ubuntu16.04系统安装ROS(kinetic版本)后,使用ROS包含的gazebo时报错,gzserver: /build/ogre-1.9-mqY1wq/ogre-1.9-1.9.0+dfs ...
- ubuntu先anaconda中python3与ros共存时opencv报错
Q: ubuntu使用python调用opencv报错ImportError: /opt/ros/kinetic/lib/python2.7/dist-packages/cv2.so: undefin ...
- 有关ros kinetic无法安装报错unmet dependencies及解决
背景: 之前出了点问题,重装了ubuntu16.04,也面临着ros重装.跟着官方安装教程http://wiki.ros.org/kinetic/Installation一步一步走到安装 sudo a ...
- ROS python3使用cv_bridge报错,在melodic中使用python3 cv_bridge
ROS cv_bridge报错:在melodic中使用python3+cv_bridge 问题描述 解决方案 使用方法 2022.7补充 问题描述 ROS与opencv之间的数据类型转换是通过cv_b ...
- 【无标题】Realsense ROS驱动安装以及报错处理
参考官网:https://github.com/IntelRealSense/realsense-ros 1.命令行安装:这种方式比较简单,没有报错.需要注意的是安装位置需要自己找,后续修改launc ...
- 【ROS】虚拟机VMware 安装ROS 一条龙教程+部分报错解决
前言 Linux下安装ROS真是太多坑了,如何在Linux下安装ROS呢?博主带你少走弯路! 目录 前言 第一步:配置软件源 1.打开设置 2.打开软件与更新 3.选源 第二步:设置sources.l ...
- 【Linux学习】虚拟机VMware 安装ROS 一条龙教程+部分报错解决
前言 Linux下安装ROS真是太多坑了,如何在Linux下安装ROS呢?博主带你少走弯路! 目录 前言 第一步:配置软件源 1.打开设置 2.打开软件与更新 3.选源 第二步:设置sources.l ...
- ROS msg 文件修改 报错
修改msg文件报错 自己定义msg文件,catkin_make没有问题,但是当自己修改了msg文件内容之后catkin_make就会出现错误 The dependencies of the messa ...
最新文章
- 视频专辑:Photoshop基础视频教程
- C# 代码注释规范文档
- js中replace未定义_js中replace的用法
- postmain请求中午乱码_完美解决Get和Post请求中文乱码的问题
- ExtJs2.0学习系列(5)--Ext.FormPanel之第二式
- Vue之v-if, v-else, v-show, v-for, v-bind
- 19.高性能MySQL --- 锁的调试
- 如何安装ArchLinux
- java的PrintWriter打印流详解
- HTMLTestRunner文件
- yylabel 加载html,YYLabel 自动布局 富文本文字点击事件
- QQ玩一玩广告与音效使用总结
- 如何将经典算法与人工智能结合?NeurIPS 2021
- python数字不同数之和_python练习 数字不同数之和+人名最多数统计
- 您的项目已获得 1000 枚 Star !
- mui在线加载html,MUI 预加载页面
- 赣州旅游职业学校学计算机,赣州旅游职业学校是公办的吗
- 点云法线估计:C++实现
- python+opencv+dlib实现人脸检测与表情识别
- 分享图片去水印几个工具-图片去除水印最好用的工具
热门文章
- 树莓派安装TensorFlow并使用[一步到位]
- html,css基础知识点参考pink老师的ppt
- [20个项目学会BBC micro:bit编程] 18-红外循迹(黑线)
- 等保-机房来访人员进出登记表
- 亚信安全认证acse_构建中国云生态|华云数据与亚信安全完成产品兼容互认证 携手推出“云安全防护联合解决方案”...
- 用VHDL实现有限状态机
- open函数和fopen函数区别
- 【STM32】STM32 SDIO SD卡读写测试(二)-- SD_Init之Power On阶段
- 多种分隔符分割字符串
- RT-ThreadBearPi 开发笔记 -- 为小熊派开发板制作 RT-Thread BSP 包